[テクニック]の検索結果
はてなブックマークに「関連エントリー」機能が追加された。各エントリーのエントリーページを閲覧すると、「そのエントリーに関連する他のエントリー」が表示され、ブックマークされた記事 (エントリー) に関連する他のエントリーを簡単に見つけることができる。
関連エントリー機能のリリースについて
見た限り、ないよりは便利かもしれませんが、あまりインパクトのある機能ではなさそうです。
関連エントリー機能のリリースについて
あるニュースを見たとき、そのニュースに関連する他のニュースを発見することができます。盛り上がっている議論ブログの関連エントリーとして、同様の議論や議論のサマリなどが見つかります。コンピュータのちょっとした TIPS のエントリーからは、良く似た他のテクニックを発見することができます。料理の人気レシピからは、同じ材料を使った他の料理のレシピを発見することができます。面白いサービスをブックマークすると、そのサービスと良くにた他のサービスを発見することができるかもしれません。
見た限り、ないよりは便利かもしれませんが、あまりインパクトのある機能ではなさそうです。
バグのないソフトウェアはない、というくらいソフトウェアにはバグがつきものですが、ソフトウェアの開発プロジェクトには期間や予算に上限があるため、バグの修正に手間取ると十分なテストを実施することができず、品質が低い状態でリリースされてしまうことになります。テストを円滑に進めソフトウェアの品質の高めていくためには、バグを迅速かつ正確にバグを修正していく必要があります。
しかし、オブジェクト指向プログラミング(OOP)やデザインパターンなどプログラムの作り方についての解説書や記事はたくさんあるにも関わらず、「バグは本来あってはいけないもの、あるはずが無いもの」という意識があるためか、デバッグに関して語られている情報源はあまり多くありません。そのため、デバッグのテクニックについてはせいぜい「開発現
場の先輩に教えてもらう」というのが実情です。
知識を共有するために、私がこれまでのソフトウェア開発の経験から得た、デバッグを効率的に行なうための心得をいくつか挙げてみたいと思います。
1. バグの原因は自分が作っているプログラムにある可能性が最も高い
ソフトウェアを構成する要素として、OS、開発ツールに付属するライブラリ、市販ライブラリ、プロジェクト内で作成されたライブラリなどがありますが、バグの原因は自分が作っているプログラムである可能性が最も高いと考えたほうがすばやくバグを見つけられます。なぜなら、今まさに開発が行なわれているプログラムこそが最もテストされていないプログラムだからです。問題の原因をマイクロソフトのせいにする前に自分のプログラムを調べましょう。
2. テストの実施を妨げているバグを優先する
当然のことですが、テストができなければバグを見つけることができません。効率的にバグが発見できるように、めったに行なわれない操作によって発生するバグよりも、必ず行なわれる操作で発生するバグを優先的に修正していく必要があります。
3. 問題を確実に再現できるようする
問題が発生する条件(操作手順、データなど)を必ず特定しなければなりません。これができないと動作確認は不可能ですので、修正したつもりが実は直ってなかったという事態にもなりかねません。この作業自体はソースコードがなくても可能なので、テスト担当者の協力を得られるのであれば、情報を交換しながらテスト担当者と開発担当者が並行して調査を進めるのが良いでしょう。
4. 一度でも問題が発生した場合はバグがある可能が高いので必ず調査する
一度でも問題が発生した場合は、単にバグが発現する条件がわかっていないだけで、必ずどこかにバグがあります。開発作業中はいろいろプレッシャーがあるので難しい面もありますが、見つけた時点で調査しておいた方がいろんな面で良いでしょう。
5. ソースコードを見ただけで正しい処理が行なわれていると判断しない
プログラムはプログラマが思っている通りに動くのではなくコンパイラが解釈した通りに動くものです。コンパイラについての知識が豊富なプログラマが犯しがち問題ですが、プログラマがコンパイラの仕様について誤解しているために生じるバグもよくあります。プログラマ自身は正しいと思っているためソースコードを見ただけではバグを発見することが困難ですがが、このようなバグは実際にプログラムを動かしてみることで簡単に原因を発見することがきます。
6. 想定外の操作や想定外のデータが使用されていないかチェックする
プログラムはプログラマが想定していなかった操作が行なわれたり、想定外のデータが入力されたりした場合は正しく動作しないことが多いものです。問題を発生させる操作やデータがプログラムで想定されているかチェックしてみましょう。
7. バグの原因となっているソースコードは必ず特定する
関係の無いところを直しても問題の現象が発生しなくなる場合もありますが、それでバグが無くなったわけではありません。そのような場合は、また別のところで別のかたちで問題が発生することになりかねません。バグは必ずソースコードレベルで原因を特定し確実に修正すべきです。
8. できるだけ他の処理に影響を与えないようにソースコードを修正する
他の処理に影響を与えるような修正を行なった場合、これまで問題なく動いていた部分に新たなバグを埋め込んでしまう可能性が高いものです。別の問題を引き起こさないように、影響範囲に注意してソースコードを修正します。しかし、単なるコーディング上の間違いであればプログラムの修正は比較的簡単で他の処理に影響を与えることは少ないのすが、設計に問題がある場合は他の部分の影響を与えないようにバグ修正を行なうのが難しい場合があります。そのような場合は、本質的な問題の解決にはならないとしても、影響範囲を限定するために暫定的な対処を行なった方が良いでしょう。
9. ソースコードを修正した場合は必ずテストする
たとえ簡単な修正であっても間違った修正を行なう可能性は常にあります。また、修正が思わぬところに影響を与えることもあります。当たり前ですが、ソースコードを修正した場合は必ずテストを行ないましょう。テスト作業を手を抜くよりも、テストを行なった方がトータル見れば開発者自身にとっても負担が少ないはずです。
しかし、オブジェクト指向プログラミング(OOP)やデザインパターンなどプログラムの作り方についての解説書や記事はたくさんあるにも関わらず、「バグは本来あってはいけないもの、あるはずが無いもの」という意識があるためか、デバッグに関して語られている情報源はあまり多くありません。そのため、デバッグのテクニックについてはせいぜい「開発現
場の先輩に教えてもらう」というのが実情です。
知識を共有するために、私がこれまでのソフトウェア開発の経験から得た、デバッグを効率的に行なうための心得をいくつか挙げてみたいと思います。
1. バグの原因は自分が作っているプログラムにある可能性が最も高い
ソフトウェアを構成する要素として、OS、開発ツールに付属するライブラリ、市販ライブラリ、プロジェクト内で作成されたライブラリなどがありますが、バグの原因は自分が作っているプログラムである可能性が最も高いと考えたほうがすばやくバグを見つけられます。なぜなら、今まさに開発が行なわれているプログラムこそが最もテストされていないプログラムだからです。問題の原因をマイクロソフトのせいにする前に自分のプログラムを調べましょう。
2. テストの実施を妨げているバグを優先する
当然のことですが、テストができなければバグを見つけることができません。効率的にバグが発見できるように、めったに行なわれない操作によって発生するバグよりも、必ず行なわれる操作で発生するバグを優先的に修正していく必要があります。
3. 問題を確実に再現できるようする
問題が発生する条件(操作手順、データなど)を必ず特定しなければなりません。これができないと動作確認は不可能ですので、修正したつもりが実は直ってなかったという事態にもなりかねません。この作業自体はソースコードがなくても可能なので、テスト担当者の協力を得られるのであれば、情報を交換しながらテスト担当者と開発担当者が並行して調査を進めるのが良いでしょう。
4. 一度でも問題が発生した場合はバグがある可能が高いので必ず調査する
一度でも問題が発生した場合は、単にバグが発現する条件がわかっていないだけで、必ずどこかにバグがあります。開発作業中はいろいろプレッシャーがあるので難しい面もありますが、見つけた時点で調査しておいた方がいろんな面で良いでしょう。
5. ソースコードを見ただけで正しい処理が行なわれていると判断しない
プログラムはプログラマが思っている通りに動くのではなくコンパイラが解釈した通りに動くものです。コンパイラについての知識が豊富なプログラマが犯しがち問題ですが、プログラマがコンパイラの仕様について誤解しているために生じるバグもよくあります。プログラマ自身は正しいと思っているためソースコードを見ただけではバグを発見することが困難ですがが、このようなバグは実際にプログラムを動かしてみることで簡単に原因を発見することがきます。
6. 想定外の操作や想定外のデータが使用されていないかチェックする
プログラムはプログラマが想定していなかった操作が行なわれたり、想定外のデータが入力されたりした場合は正しく動作しないことが多いものです。問題を発生させる操作やデータがプログラムで想定されているかチェックしてみましょう。
7. バグの原因となっているソースコードは必ず特定する
関係の無いところを直しても問題の現象が発生しなくなる場合もありますが、それでバグが無くなったわけではありません。そのような場合は、また別のところで別のかたちで問題が発生することになりかねません。バグは必ずソースコードレベルで原因を特定し確実に修正すべきです。
8. できるだけ他の処理に影響を与えないようにソースコードを修正する
他の処理に影響を与えるような修正を行なった場合、これまで問題なく動いていた部分に新たなバグを埋め込んでしまう可能性が高いものです。別の問題を引き起こさないように、影響範囲に注意してソースコードを修正します。しかし、単なるコーディング上の間違いであればプログラムの修正は比較的簡単で他の処理に影響を与えることは少ないのすが、設計に問題がある場合は他の部分の影響を与えないようにバグ修正を行なうのが難しい場合があります。そのような場合は、本質的な問題の解決にはならないとしても、影響範囲を限定するために暫定的な対処を行なった方が良いでしょう。
9. ソースコードを修正した場合は必ずテストする
たとえ簡単な修正であっても間違った修正を行なう可能性は常にあります。また、修正が思わぬところに影響を与えることもあります。当たり前ですが、ソースコードを修正した場合は必ずテストを行ないましょう。テスト作業を手を抜くよりも、テストを行なった方がトータル見れば開発者自身にとっても負担が少ないはずです。
FC2ブログに参加者がトピックを自由に作成し掲示板のような使い方ができる新機能「コミュニティ機能」が追加された。ただし、コミュニティ機能は新管理画面でのみ利用可能。
コミュニティの作成はコミュニティTOPページ上部の「コミュニティ作成」をクリックし、コミュニティ名、参加する際に必要な情報、カテゴリを選択して確認ボタン押下で簡単に作成できる。
コミュニティ機能
FC2ブログにコミュニティ機能を追加!
ということなので、より良い人生を実現するために日常生活や仕事のやり方を改善・向上させるテクニック「LifeHack(ライフハック)」についてのコミュニティを作成してみました。
トピックの作成やコメントの書き込みを参加メンバーに限定した掲示板といった感じですね。匿名のコメントを受け付けられないのがちょっと残念ですが。
コミュニティの作成はコミュニティTOPページ上部の「コミュニティ作成」をクリックし、コミュニティ名、参加する際に必要な情報、カテゴリを選択して確認ボタン押下で簡単に作成できる。
コミュニティ機能
FC2ブログにコミュニティ機能を追加!
ということなので、より良い人生を実現するために日常生活や仕事のやり方を改善・向上させるテクニック「LifeHack(ライフハック)」についてのコミュニティを作成してみました。
トピックの作成やコメントの書き込みを参加メンバーに限定した掲示板といった感じですね。匿名のコメントを受け付けられないのがちょっと残念ですが。
+
A Python [書籍]
オブジェクト指向スクリプト言語「Python」に関する書籍。Pythonの入門書やリファレンス、プログラミング解説書など。Pythonで学ぶプログラム作法プログラミング未経験者を対象に、コンピュータプログラミングの基本...
HTMLとスタイルシート(CSS)に関する書籍。HTML/スタイルシート(CSS)の入門書、実戦的なテクニックの解説書、全てのタグが網羅されたリファレンスなど。できる大事典 HTML & CSS標準「W3C」に準拠したHTMLとCSSの...
XMLに関する書籍。XMLの入門書や技術的な解説書など。やさしいXMLXML文書の記述方法からXSLによる文書操作、さらにDOMとSAXを使った高度なJavaプログラミングまで、 XMLアプリケーションを構築するための基本技術を、...
偏った力関係の中で行なわれる現実の議論では、議論が対等の立場で行なわれることを前提としている論理的思考では十分に機能しないとして、論理学で詭弁とされてきたレトリックを用いて相手を説得すべきであると説い...
LifeHack(ライフハック)とは、より良い人生を実現するために日常生活や仕事のやり方を改善・向上させるテクニックの総称で、景気低迷時に技術者育成を怠ったことから発生している人員不足や短期間での納品を顧客か...
リンクベイティング(リンク餌撒き)とは、マーケティング目的で行われる「釣り」や「煽り」のことで、ターゲットとなる人々がリンクしたくなるようなコンテンツを提供することや、コミュニティで論争を誘発するよう...
+
A OpenLDAP 書籍
OpenLDAP入門―オープンソースではじめるディレクトリサービス初中級者向けのOpenLDAPガイド。オープンソースの本格的なLDAPの実装であるOpenLDAPを使ってディレクトリサービスを構築する手順がわかりやすく解説され...
アクセスランキング
今日のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (6 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (1 PV)
- 完全無料のMT5用ナンピンEA「Nanpin K(ナンピンケイ) MT5」 使用制限無し (1 PV)
- 中上級者向け安全性重視のナンピンツール(半自動EA)「Million Dollar Pro」 #MT4 #有料版 (1 PV)
- [FX]同一通貨ペアのポジションをまとめて決済できるMT5向けツール(EA)「Closer(クローザー) MT5」を完全無料で公開 (1 PV)
- 将棋実況チャンネル【クロノ】 - ヤフーニュースに掲載された将棋系ユーチューバー (1 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (1 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (1 PV)
- 無料のMT4向けナンピンマーチン爆益(爆損)EA「Jipangu(ジパング)」 (1 PV)
- 「Million Dollar MT5」のナンピンマーチン大会(#MCC2023)での設定 (1 PV)
今月のアクセスランキング TOP 10
- 2NN 2ちゃんねるニュース速報+ナビ (3274 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (494 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (92 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (89 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (71 PV)
- Million Dollar Ver 1.09向けの収益性を重視したゴールド(Gold、XAUUSD)ロングセットファイル (64 PV)
- 無料のMT4向けナンピンマーチン爆益(爆損)EA「Jipangu(ジパング)」 (63 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3 Ver 2.04」 #MT4 (59 PV)
- [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (51 PV)
- 2chまとめサイト - 痛いニュース(ノ∀`) (46 PV)
アクセス統計
ディレクトリ
関連サイト