2016-07-06 1 views
-1

私は、ジョイスティックを読み取り、それに従って3次元空間内のアクチュエータを移動する組み込みプロジェクトに取り組んでいます。今、私は、ユーザー入力として代替オプションとしてシリアルライン経由で利用可能なユーザープロンプトを提供したいと思います。ユーザー入力はGコードになります。ユーザーのプロンプトを実装する上で十分に確立された設計パターンはありますか?

https://en.wikipedia.org/wiki/G-code

私はCコードの作成には不慣れではありませんが、前に入力したテキストを処理する必要はありませんでした。この種のソフトウェアが読みやすい/保守可能な方法でどのように実装されているかについて、十分に確立された設計パターンがありますか?

+0

'stdio.h 'の' gets() '関数は' stdin'を取得します。 –

+1

OT:@EliSadoff 'gets()'はそれ以上の理由でC言語ではありません。**使用しないでください**!代わりに 'fgets()'を使用してください。 – alk

+5

@EliSadoff 'gets'は非常に悪く悪であり、もはや標準ライブラリの一部ではなく、極端な偏見で避けるべきです。 – WhozCraig

答えて

2

いいえ、ユーザープロンプトの「デザインパターン」はありません。

デザインパターンは最高でも限界値です。彼らは、ほとんどのプログラマーが自分自身のために考えることができない明らかな大災害に対して、腕をふるうような応答で作成されました。その結果、彼らは以前の思考の長いカタログと、これらのキャストインストーン同族体に彼らの思考をマッピングする方法に関する細かい詳細な指示を与えられている。

「デザインパターン」という素晴らしい例があります。グローバル変数を使用するのは何とかEVILです。だから、SingletonFactoryの仲介サービスを採用する必要があります(しかし私は逃げます)。そして、 "getter"と "setter"メソッドを提供して、カプセル化されたデータム。結果:そこにある1行のコードの代わりに、棚に、そこにある15行のコードを棚に入れてください。 HOGWASH!

多くの人がこの声明で嫌がらせをします。もし彼らがそれについて考えていたら、彼らは偽りの犠牲になったことに気付くだろう。デザインパターンは、「Common Core」英語エッセイの課題のルーブリックに似ています。学生は独創的かつ適切に構造化された英語を独力で生み出すことができないと仮定し、それ。

あなた自身を考えてください。それは誰でも、どこにでも、あなたに与えることができる最高のアドバイスです。

+0

うーん.... GoF警察があなたのためにあなたを手に入れようとしています。 :) – evaitl

+3

公正を期すために、正当性を欠いていないと主張するまったく同じ人々の中には、グローバルを使用することが貧弱な形式であると、シングルトンパターンの使用が貧弱な形態であると主張する人もいます。実際、同じ理由のいくつかが適用されます。私はあなた自身のことを考えているのですが、私も他者の経験からも恩恵を受けています。デザインパターンの使用法は本質的にコード品質の妥当な尺度ではありませんが、設計パターンは慎重に選択して適用されます。 –

+0

@JohnBollingerデザインパターンは、ツールボックス内の他のツール(例:グローバル)と同様に用途があります。使用するかどうかは、気をつけて(すなわち、怠惰に)決める必要があります。私はそれらが役に立つと思うので、オブジェクトプールをたくさん使用します。私はまた、[グローバルでなければならない]たくさんのアイテムを組み合わせたシングルトンを作成します。使用されている技術は、特定のコンテキストで評価する必要があります。なぜそれを使用していますか?この特定のインスタンスでは、どのような価値を提供していますか?どのような問題が解決しますか? –

関連する問題