スロープログラミングについて

翻訳者から: Web-payment.ruを開発する 、監視交換機と支払いシステムに関する多くのセクションがあるサイトで、この記事で説明した原則を直感的に使用しました。 無意識のうちに、私はそれらを知っていましたが、それらを定式化することができませんでした。 Jeffrey Ventrellaによる多くの本の著者である経験豊富なプログラマーが共有する興味深いアプローチに慣れることをお勧めします。

私の父は私にしばしば言いました:「息子、あなたは速すぎます。」



サンフランシスコ湾の多くのハイテクスタートアップで働く機会がありました。 現在、私は52歳で、ゆっくりと慎重にプログラムしています。 私はデザイナーのきしむコードのようなものと考えることができます。 さらに投稿を読んで、あなた自身がこれを理解するでしょう。



最近、私は非常に高速で小さな反復的なコード変更の有効性を信じる若いコーダーのグループとプロジェクトに取り組みました。 ゆっくりとそれらを並べてプログラミングすることは私にとって問題でした。 1つの共通のコードベースで作業することをお勧めしました。1つの大きなスープポットを一緒に調理しているようで、継続的に積極的に干渉することを条件に、すばらしい完全なものが確実にそこから出現します。



しかし、何もそれから来た



これらのコーダーの多くは、不可欠なエンジニアはいませんし、特定のコードに対して責任を負うべきではないと誤って信じていました。 エンコーダーはいつでもコードの任意の部分を変更できる必要があります。最終的に、 githubなどのスマートサービスもあり、任意の数のエンコーダーによる任意の数の非同期コントリビューションを管理およびマージできます。 誰もが定期的にコミットを行い、何も壊さない限り、すべてが最終的に非常に良いものになります。



完全なナンセンス



設計プロセスを単に廃業にすることはできません。 文明と、最新で最もスマートな開発ツールでさえ、どんなにスマートであっても、現実世界での集団的協力や、どの大聖堂、鉄道、と長編映画。



同様に、いくらプログラミングしても、おとりコーダーチームと同じ速度でソフトウェアを完全に開発できるツールを作成することはできません。



不整脈



速いプログラマーの間での私の遅いプログラミングは、ある種の不整脈のようなものでした。 つまり、コードを書く私のリズムは、マシンガンのようにそれを走り書きする他のエンコーダーの繰り返しに単純に消えました。 私のプログラミングスタイルでは、さまざまな複雑さのプロジェクトで作業期間がまったく異なることを前提としています。 各ブランチは、調査、試行錯誤、ハッキング、一時変数から始まります。 実際、これはすべて、建設中の建物の周りの足場の建設と比較することができます。 次第に写真が見えてきます。 少し後に、仕事に戻り、「i」にすべての点を付け、最後の仕上げをします。 このような各クリエイティブセッションの結果は、すぐに使用できるコードのようなものです。 (私は仕事の後に「スタジオに」これ以上離れることはありません)。 開発されたコードのブランチをリポジトリに追加することは、新しい戦略、プロジェクトスキーム、またはアーキテクチャオブジェクトの外観に相当します。



私の努力のすべてが終わった後、大人の生物が生まれたとき、私はそれを改善する方法を理解しているように思えるので、私は戻ってやり直します。 時々うまくいくこともあれば、うまくいかないこともあります。 このクリーチャーが既に形成され、私を直接見ている場合にのみ、おそらくこれについて知ることができます。



しかし、プログラマーと彼らのスープポットに戻りましょう。 私たちは次の問題に直面しました:最速のエンコーダーでさえ、プログラムのエコシステムに一般的な安定性がなく、静かな背水がなく、開発が開発されており、アイデアを設計するプロセスが開発されているときに、優れた創造的なソリューションをどのように考え出すことができますか?



画像






高速プログラミングと低速(速度以外)に違いはないと主張するコーダーは、設計がもたらす利点を理解していないだけです。 現代の神経生物学者の研究は、脳内の神経インパルスのボレーが思考と意識に関連する脳のすべての部分に到達する流体のように広がり、特定の時間後にのみ応答することを確立しています。 同じ理由で、良いアイデアには成熟するまでの時間が必要です。



遅いプログラミングの動き



ウィキペディアによると、「スロープログラミングの動きスローモーションの一部です。 これは、コード品質、注意深い設計、 ソフトウェアテスト 、および開発プロセスの検討を重視するソフトウェア開発哲学です。 彼女は松葉杖の使用を避け、開発サイクルが速すぎること、バグのないコードを書くことを推奨しています。」



さらに、ウィキペディアは「スローなソフトウェア開発」に関する情報も提供します。「 柔軟な開発方法論に従い、世界中のソフトウェア開発グループは、結果を事前に予測できるプロジェクトを探しており、堅実なキャリアの構築と仕事間の合理的なバランスの維持に努めています」そして私生活。 彼らは、 ペアプログラミングコード改訂コード リファクタリングなどのプラクティスの使用を提案しています。その結果、より信頼性が高く、よりデバッグされたソフトウェアアプリケーションを取得できます。



ここサンフランシスコ湾にあるベンチャーキャピタルの支援によるソフトウェア開発の人気は、今ではとてつもないペースで成長しています。 原動力として機能するお金は、創造的思考の開発プロセスに不自然に高い要求を課します。実際には、進化の自然な生物学的リズムに翻弄されるのが最善です。 速いほど良いとは限りません。 実際、 遅いことは時々 速いことを意味します -約束されたすべてが実際に満たされた瞬間に。 デジタル技術が私たちの自然な時間的リズムを奪う方法については、Douglas Rushkov Present Shockの本で説明されています。



別の問題があります:テクノロジーに対するほとんど宗教的な執着と、それに続く開発ツールへのフェティッシュな愛情です。 なぜソフトウェアがこんなにずさんなものになったのか(はい、本当にひどいです )、そしてそれはそれ自体の固定のためにそうなることがわかります。 高速プログラマーは、最初にコードの作成を支援する平凡なユーティリティを作成し、次にそれらを無限に改善し、以前の同じ平凡な開発を改善するためにますます平凡なソリューションを作成します。



そのため、アプリケーション開発サイクルには大人、女性、教育者、創造的な人々が必要だと思います。 より多くの人間 、より少ない人間のオブジェクト 。 そのような人々 が外部からのプロセスに与える影響については話していません。技術的なサポートを受けたり、インターフェースのデザインを装飾するように指示したりするときは。 プロセス内部、つまりプログラムが人間社会全体と共鳴することを保証する必要性を意味します。



盲目的に入力するタイピストではないことをとてもうれしく思います



私の友人の1人、大人の女性、ソフトウェアスペシャリストは、かつて「アプリケーションのプログラミングとキーボードでの入力は、2つの異なることです。」とニヤリと言いました。 誰もがこれを知っていますが、時々これを覚えていても誰も傷つけません。 ブランダン・エンリックはすでにこれについて書いています。 私たちプログラマーは、キーボードを指でたたくのに時間を費やし、外部からは、そのような身体活動はプログラミングのように見えます。 ただし、実際には、プログラミングとは、概念、言語、論理、および投機的な構成を特定の明確な形式に結び付けて、コンピューターのメモリに保存できるようにする行為です。



私の妻はよく外に出て、「コーディングしていますか?」と私に尋ねます。 そして、私はしばしば「はい」と答えますが、実際には、そのような瞬間に、私は通常剪定で枝を切るか、堆肥で運転します。



植物、土、剪定ばさみは、キーボードや画面のちらつきとプログラミングとほぼ同じ関係にあります。



今日、私たちは過渡期にあります。成功の主な尺度が成長である産業時代と経済は、持続可能な開発の時代に置き換えられています。 はい、新しいソフトウェアと新しいビジネスは確実に成長するはずです。 しかし、生き残るためには、良いワインを作る過程や子育ての過程で起こるように、愛情と注意を払ってゆっくりと成長しなければなりません。






All Articles