InfoQ ホームページ Code_Quality に関するすべてのコンテンツ
-
デッドコードは取り除かなければならない
デッドコードは、見つけて、取り除く必要がある。デッドコードを残しておくと、プログラマの理解と行動を妨げることがあり、コードが実行されて、重大な問題を引き起こすリスクもある。 デッドコードの削除は、技術的な問題ではない。それは考え方と文化の問題だ。
-
AtlassianのQA
AtlassianでクラウドQAマネージャを務めるMark Hrynczak氏は同社の今年のサミットで高い価値のQAチームはどのように振舞うかについての氏のビジョンを語った。氏は、QAチームの価値を、第一に企業の戦略的目的と完全に足並みを揃えること、と定義している。足並みを揃えることで、企業が特定のタイミングで直面するかもしれない重要な問題の解決に貢献するのだ。
-
Coolblueの継続的デプロイメント
継続的デプロイメントは結果的に,より高い責任感とデプロイメントの品質向上をもたらす - CoolblueのテクニカルパスファインダであるPaul de Raaij氏は,このように主張する。コーディング標準はコードベースの混乱を防止し,自動化されたインスペクションは退屈で単純なチェック作業に効果がある。そして手作業によるチェックは,ロジックやコードの利用の妥当性のチェックに最適な方法だ。
-
リファクタリングとコードの臭い – きれいなコードへの旅
リファクタリングは、より理解しやすく、メンテナンスしやすい、きれいなコードにするのを助けてくれる。それにはコードの臭いを嗅ぐ経験と実践が必要だ。つまり、コードの中にあるより深い問題を示す悪い設計の兆候を見つけることだ。コードを壊すことなく、小さなステップでリファクタリングを行うことを支援するツールもある。
-
自動運転車のソフトウェア開発にモデルを使用すること
モデルは自動運転車のような自律システムのソフトウェア開発において重要な役割を果たしている。モデルは振る舞いのシミュレートや検証、システムの文書化、そしてコードを生成するために使用される。Jonathan Sprinkle氏が、自律システムで使用するモデルをどうモデリングするか、モデリングの利点、テストデータを用いてどう自動車を運転するソフトウェアを検証するか、信頼性のあるコードを記述するための技法を説明する。
-
Checked C - Microsoftによる,より安全なC/C++
MicrosoftがChecked Cをオープンソースとして公開した。CとC++言語への境界チェック導入を目的とした研究プロジェクトだ。
-
ソフトウェアを効果的にデバッグするには
InfoQでは今回,“Code Reading”と“Code Quality”の著者であるDiomidis Spinellis氏にインタビューして,ソフトウェアエラーの検出と修正,ソフトウェアデバッグの原則,デバッグの効率を改善する方法,デバッグが簡単なコードの書き方,エラーの防止と対処のためにマネージャがなすべきことなどを聞いた。
-
よいコードを書くために,プログラマは何をすればよいのか
よいコードを書くためには,設計の基本を守り,既存のコードを読むことが必要である – Java ChampionでハイパフォーマンスコンピューティングのスペシャリストであるMartin Thompson氏のことばだ。InfoQは,QCon London 2016で“Engineering You”と題した講演を終えた氏に,ソフトウェア産業が直面する課題は何か,プログラマがそれを克服して優れたソフトウェアエンジニアになるにはどうすればよいのか,などをインタビューした。
-
コード品質の測定と改善
InfoQはBoris Modylevsky氏にインタビューして,コード品質を測定することの重要性,その測定結果を品質改善に利用する方法,継続的インテグレーションへの静的コード解析の統合,テストカバレッジとテストの自動化,統合型コード解析とテストカバレッジを継続的インテグレーションと組み合わせることのメリットについて聞いた。
-
Uncle Bobが”プログラマの誓い”を提案
Uncle Bobがソフトウェアプログラマたちに対して,他のプロフェッショナルたちと同じような誓いを立てて,クラフトマンシップの重要性を意識するように提案している。
-
レガシソフトウェアをメンテナンスするためのモデルベースのアプローチ
Phillips HealthcareのソフトウェアアーキテクトであるHans van Wezep氏がBits&Chips Software Engineering Conferenceで,モデルを使用したマイグレーションについて講演した。InfoQでは氏にインタビューして,レガシソフトウェアをメンテナンスする上での問題点,手作業によるリファクタリングでのエラーの問題,コードベースのリファクタおよびマイグレーションにおけるモデルの利用,レガシソフトウェアをメンテナンスする上でのモデル利用のメリットなどについて話を聞いた。
-
形式的手法を用いた正当性立証可能なソフトウェアの開発
ソフトウェアプログラム内の中核的なコミュニケーションと状態管理が論理的に100%正しいことを証明する手段として,コンピュータチェックモデルを利用する方法がある。同じようなモデルは,100%正確なソースコードの作成にも応用できる。このような形式的手法を利用することにより,市場提供のためのコストと時間を削減し,より信頼性の高いソフトウェア製品の提供が可能になる。
-
継続的テストの利点
2006年の設立以来、Unrulyはチームとしてエクストリームプログラミング(XP)を実践してきた。テストファーストの手法を用いてコードを書き、ステージングでの手動テストに頼るのではなく、自動テストに投資をしてきた。InfoQはRachel Davies 氏にインタビューし、テストの継続的手法の重要性やその育て方、Unrulyで生み出している価値について話を聞いた。
-
マイクロサービスとソフトウェア開発の目標
ソフトウェアの目標は,プラスのビジネスインパクトを得るためのリードタイムを最小化し,持続することだ。その他はすべて些細なことに過ぎない - QCon Londonカンファレンスで行ったプレゼンテーションの中で,Dan North氏はこのように訴えて,プログラミングに対する論理的な理由付けと,その結果としてのマイクロサービスに適したアーキテクチャスタイルへの移行について説明した。
-
"アンヘッジド・コールオプション"はバッドコードに対するメタファとして適当か
バッドコードと技術的負債に関するブログ記事で,Steve Freeman氏は,Chris Matt氏がバッドコードを表す"ヘッジされない(unhedged)コールオプション"というメタファを思い付いた経緯について説明した。この記事が今,RedditとHacker Newsで激しく議論されている。InfoQでは,バッドコードとコードの臭い(code smells)に対するメタファの使用,低品質コードのトレードオフとコスト,コード品質に対する責任などについて,両氏にインタビューした。