レガシープログラマかどうかを判断する基準
レガシープログラマかどうかを判断する良い記事があったのでメモ。
【元ネタ】
2011-02-18 - ITは芸術だ レガシープログラマかどうかを判断する10項目
【公開】XP祭り関西2011講演資料「Agile開発のスケールアップ~Agile2.0を支えるチケット駆動開発」 #xpjugkansai: プログラマの思索
(引用開始)
【レガシープログラマの判断項目】
* 使われるローカル変数をすべてメソッドの最初に宣言する。
* ローカル変数の宣言時に空文字("")や新しいオブジェクト(new Xxx())で初期化する。その後にすぐ別の値をセットする。
* メソッドの戻り値がすべて成功・失敗を表す 0 か -1 になっている。
* 複数のデータをまとめて扱う際は毎回配列を使う。配列の上限数はありえなさそうな数を指定する(1000とか)。
* 基本データ型(stringやint)と配列だけでデータ構造を表現しようとする。
* 変数の命名規則にハンガリアン記法*2を使う。
* クラスのフィールド変数をグローバル変数のように利用する。
* 配列やリストを毎回forループで処理する(例: for (int i = 0; i < array.Length; i++))。
* クラスやクラスメンバの可視性を意識していない(privateメソッドがpublicになっている等)。
* 変更履歴をコード中にコメントとして残す (ADDやDELみたいなコメントがたくさん付いている)。
(引用終了)
Cobol、C、VBで腕を鳴らしたプログラマも、Java、C#、Ruby、Python、JavaScriptなどで書いてみると、以前の習慣が古くさくなっている時が多い。
過去の成功体験が新しい技術の習得の邪魔をしていないか、もう一度胸に手を当ててみる。
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「ソフトウェア」カテゴリの記事
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
「ソフトウェア工学」カテゴリの記事
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
「Ruby」カテゴリの記事
- 「コーディングを支える技術」は良い本だ(2022.05.26)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- ITの技術や知識はツールの習得と表裏一体である(2021.03.26)
- JRubyの終焉(2020.06.09)
コメント