タグ

プログラミングに関するtakoashi_netのブックマーク (65)

  • SEとPG、どっちが頭がいい?(2):下流から見たIT業界:エンジニアライフ

    刺戟的な題名で続けます。 前回は日独特のSE/PGの分業体制がどのようにして発生したのか、ということを説明しました。それは日にソフトウェア開発が産業として根付いたときに、PGが単純作業労働者と位置付けられてしまったため、上級技術者を区別する言葉が必要とされた、それがSE(システムエンジニア)だというものでした。 ●C言語@UNIXでは COBOLの開発ではSE作業とPG作業がきちんと分けられていると思われがちですが、これも前回述べたとおり実際には形式だけのものになっていました。これはタイムシェアリング端末の普及によってプログラミング作業が格段に効率化されたからでした。プログラミングに残っていた煩雑な手作業の部分が省力化されたのです。 この事情はBasicやC言語でも同じことです。1980年代後半、わたしは最初の会社を辞め、パソコンの開発をするようになりました。現場では、技術者はそれぞれ

    SEとPG、どっちが頭がいい?(2):下流から見たIT業界:エンジニアライフ
  • プログラマーの力量を見極める--面接官になったら尋ねるべき質問実例集

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます ソフトウェア開発者を採用する面接の場においては、応募者の専門家としての力量を見極めることが最も困難な作業の1つである。彼らの考え方については、面接時に少しやり取りを行えばそれなりに見当が付くだろう。しかし、実際のプログラミング経験を推し量るのは至難の業だ。一部の企業では、さまざまなテストを実施することでこれを行おうとするものの、筆者の経験から言えば、こういったテストは近代的な開発環境では必要性が薄い知識(IDEのオートコンプリート機能や、F1キーの押下で表示されるヘルプ、インターネットといったものがあるため、ライブラリの知識は以前ほど重要ではなくなっている)の丸暗記能力を試すだけに終わることも多い。そこで記事では、開発者を評価するうえ

    プログラマーの力量を見極める--面接官になったら尋ねるべき質問実例集
  • コードのクリーンアップ: アジャイルな手法を使用して技術的負債を返済する

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 アジャイルな手法を使用して技術的負債を返済する David Laribee すべてのコードベースには、暗くて恐ろしい隠れた場所や小道があります。非常に脆弱なコード、回帰バグが発生するコード、および処理をたどろうとするとイライラしてしまうようなコードのことです。 Ward Cunningham は、コードの、変更が困難でエラーが発生しやすい部分を金銭的負債ににたとえて、みごとな隠喩を作りました。技術的負債があると、前に進んだり、利益を得たり、"黒字" の状態を維持したりすることができなくなります。現実世界と同様に、安い負債もあります。低リスクの金融商品よりも利率の低い負債です。また、負債をさらに増やしていく高利

    コードのクリーンアップ: アジャイルな手法を使用して技術的負債を返済する
    takoashi_net
    takoashi_net 2010/01/05
    ひとり開発の問題点に気がつかない人が多すぎ。作り上げるだけなら簡単なんです。
  • 【ハウツー】コンソールアプリの引数を簡単に扱える「Command Line Parser Library」 (1) コマンドラインパーサーとは | エンタープライズ | マイコミジャーナル

    はじめに オプション数が多いコンソールアプリケーションを開発していると、引数を制御するコードが複雑になってしまいがちです。そこで稿ではCommand Line Parser Libraryというオープンソースを紹介します。このライブラリを使うとフィールドに属性を宣言するだけで引数を簡単に扱うことができます。 Command Line Parser Libraryとは Command Line Parser Libraryは.NET向けのコマンドラインパーサーです。CodePlexにて開発(MIT License)されており、.NET Framework2.0以上の環境で動作します。 稿では最新バージョンの「libcmdline-1.7.10.5-beta-bin.zip」を入手し「CommandLine.dll(libcmdline-bin-Releaseフォルダ)」を使用しています。

  • “読み方”を知って、レビューをもっと効果的に

    ソフトウェアレビューは、ただ漫然と行うだけでは期待する成果を得られない。ソフトウェアの品質向上に寄与する効果的な“指摘”をもっと効率的に行うためには、“それなりの読み方”がある なぜリーディング技法を使うか? 第1回『“確実な記録”こそが、品質・コストに貢献する』では、「何のためにレビューを行うのか、そのために何を重視するのか」といった“観点”を持つこと、すなわち「目的を明確化すること」がレビューを成功させるポイントだと解説しました。 今回解説するリーディング技法とは、そうした「目的」を達成するために、レビューアが「ドキュメント類をどう読み進めていくか」を具体化したものです。一方、プロジェクトマネージャや品質管理担当者など、レビューを管理するメンバーにとっては、技法の種類が「レビューでどんな問題を発見できるのか」大まかに推測する手掛かりとなります。すなわち、「目的」に応じてどのリーディング

    “読み方”を知って、レビューをもっと効果的に
  • The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code

    The Go Programming Language
  • DI(依存性の注入)×AOP(アスペクト指向)の常識

    DI(依存性の注入)×AOP(アスペクト指向)の常識:企業システムの常識をJBossで身につける(3)(1/4 ページ) 企業向けアプリケーションのさまざまな“常識”をJavaのオープンソース・フレームワーク群である「JBoss」から学んでいきましょう。企業システムを構築するうえでの基礎となる知識をリファレンス感覚で説明していきます。初心者から中堅、ベテランまで大歓迎! 前回の「“全部入り”のEclipseで学ぶ統合開発環境の常識」では、企業向けアプリケーションを構築する際に必要な要素として「統合開発環境」について説明し、実際にサンプルアプリケーションを作成し、企業向けアプリケーションの構築における、統合開発環境の機能やその重要性を学びました。 今回は、DIやAOPを通して、それらに関連するフレームワークやJBossのソフトウェアについて説明していきたいと思います。 企業向けアプリケーショ

    DI(依存性の注入)×AOP(アスペクト指向)の常識
  • 第6回 便利な開発ツールの裏側

    Visual Studioに代表される便利な統合開発環境(IDE:Integrated Development Environment)のおかげで,アプリケーション開発は効率化された。その余力は,デザインやユーザー・インタフェースの充実に回され,ユーザーの利便性に還元されるのが理想である(あくまで『理想』ね)。 が,便利になった半面,OSやハードウエアのことを詳しく知らないままプログラミングに携わる人も増えている。そんなわけで今回は,プログラム生成の裏方さんについて調査した。 便利になると見えなくなるもの 世の中,便利になったものだ。パソコンの前で項目を選んでクリックしていけば,2~3日後には商品が手元に届く。Web通販である。分厚いカタログのページをめくる手間も,郵便局や銀行に振り込み用紙を持っていく必要もない。僕もよく利用している。 数年前,Web通販の便利さを「おうちにいながら買い物

    第6回 便利な開発ツールの裏側
  • 第8回 WebページにGoogle APIで簡単にきれいなグラフを描く

    Googleが提供しているAPIライブラリ「Google API」と聞いてパっと思いつくのは,検索系(Google AJAX Search API)か,地図系(Google Maps APIGoogle Earth API)でしょう。しかしGoogle APIには他にもいくつか種類があります。今回ご紹介するのは「Google Visualization API」です。Visualizationってなんだろうということですが,実はこれグラフを描画するためのAPI群です。 グラフを作るということだけであれば,Excelのような表計算ソフトを使うのが一番手っ取り早い方法です。しかし,例えばWebサイトの中でグラフを利用しようと思えば,Excelでグラフを作り,これを画像としてキャプチャし,HTMLに貼り付けるという手順を踏まなくてはなりません。実際にIT系の記事では,特にハードウエアのベンチマ

    第8回 WebページにGoogle APIで簡単にきれいなグラフを描く
  • あなたの遭遇したバグや不具合の「イケてない回避策」は? | スラド IT

    時としてベンダーは不具合回避のソリューションとして、へそ曲がりな開発者か、全く何もわかっていない門外漢かが出してきたとしか思えないようなイケてない策を提示することがある。 例えばマイクロソフトは昔Oracleデータソースを使った場合にデータクエリが空で返ってくるのを回避するため、マウスを数分間動かし続けるという対処法を提示したことがあった(そしてこの方法、有効だった)。 また、最近ではHPがOffice2007のクラッシュを避けるため自社製品をデフォルトプリンタから外すよう指示したこともあった。 殿堂入りに値しそうな「イケてない不具合回避策」、他にもあればここに是非。

  • プログラミング格言集

    psychopathより。 金言、格言は古今東西いろいろあるのだが、ここではプログラミングに関する格言がまとめられていたので、抜粋して翻訳してみる。翻訳に間違い等があった場合は、コメント等で指摘してください。 We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil 私たちは、時間の約97%を占めるわずかな効率に関しては忘れるべきである: 時期尚早な最適化は諸悪の根源だ。 - C. A. R. Hoare Walking on water and developing software from a specification are easy if both are frozen 水の上を歩くのと、仕様に基い

  • プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ

    プログラミングを始めてから今日に至るまで、 様々なタイプのプログラマーと開発を共にしてきたが、 驚くべき速度で高い品質のソフトウェアを作り上げるプログラマーには、 一つ共通の特徴があるように思える。 それは、「はまる」時間が極端に短い、ということである。 風のプログラマー」を指向しており、開発速度を重要視している。 例えば平成14年未踏ソフトウェア創造事業「PICSY」では、 発表直前に知人でプロジェクトリーダーの鈴木健にレスキュー隊として呼ばれて 2,3日でGUI全般と、クライアント/サーバー通信部分の設計と実装を終わらせたのだが、 このときなどは、大体の要件を口頭で聞いた後は、 ほぼまったく手が止まらずコードを書き続ける感じで開発をしていた。 「はまる」時間の長さは開発速度に直結するわけだが、 プログラマーが「はまる」場合にはある程度の傾向があると思うので、 今日は「はまる」プログラマ

    プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ
  • CとC++は似たようなモノか? | スラド

    ストーリー by makeplex 2009年05月16日 22時52分 違和感がないならまだ初心者ということか? 部門より プログラミング言語のカテゴリ分けで、CとC++は一緒にされることが多い。Q&AサイトやSNS等でも「CとC++」というように同類視されている。 先日の当/.jpのアンケートでも、プログラミング言語に関する設問はこうなっている。 □C/C++ □C# □Objective-C CプログラマとしてはCとC++を一緒にされて迷惑している。実際, ネット上での質疑応答でも「まず CかC++どっちの質問?それを書いてくれないと答えられないよ」ってのが最初の応答だったりもするし。 個人的には、言語の「同類度」という観点では Cだけ別にしてオブジェクト指向という共通点がある C++/ObjectiveC/C#を一緒にするほうが妥当に感じるのである。 言語のグループ分けの際にどれと

  • Pixel City – 人工の3D夜景を作るチュートリアル&ソース

    Pixel Cityは、コンピュータ上で存在しない都市の夜景を、毎回リアルタイムで、ランダムに生成するというプロジェクトで、上記の動画はその作っていく過程と最終的な夜景を収めたもの。 Twenty Sidedというブログ […] Pixel Cityは、コンピュータ上で存在しない都市の夜景を、毎回リアルタイムで、ランダムに生成するというプロジェクトで、上記の動画はその作っていく過程と最終的な夜景を収めたもの。 Twenty Sidedというブログで4月から5月にかけて、その手順が詳細に書かれている。 Windows+OpenGLベースで、実際に制作にかけた時間は合計で30時間ということ。以下に各記事を示す。 Part 1: はじめに Part 2: ビル壁面のテクスチャを作る Part 3: 新旧デザインのビルを作る Part 4: 都市計画(街路と大小ビルの配置) 休憩 Part 5:

    takoashi_net
    takoashi_net 2009/05/15
    攻殻機動隊だ。。
  • Content Removed

    Thank you for all of your interest and feedback on Axum.  As described in this blog post, this project has concluded.  However, the Axum incubation effort was quite successful, as several of the concepts embodied in Axum live on in .NET 4.5: C# and VB will support their own form of asynchronous methods, while the Framework is adding support for data-flow constructs following the patterns we set up

    Content Removed
  • 実践的コード・レビュー(1/2) - @IT

    連載:Team Foundation Server 2008の下流工程への適用 第3回 実践的コード・レビュー アバナード株式会社 安藤 大祐(Microsoft MVP 2008 for Solutions Architect) 2009/05/12 前回の記事では、チーム開発におけるバージョン管理の活用方法を筆者が勧めるノウハウとともに紹介した。今回は、Team Foundation Server(以降TFS)を利用した実践的なコード・レビューについて説明したいと思う。 ■コード・レビューとは ○コード・レビューの目的 レビューする側・される側として、誰でも1度はコード・レビューにかかわったことがあると思うが、まずはコード・レビューの目的を整理しよう。 コード・レビューの目的は大きく2つある。 (1)品質の最低保障 コード作成者自身の思い違いや単純ミスは、人がいくら注意して気を付けて

  • Team Foundation Server 2008の下流工程への適用 - @IT

    第2回 簡潔なコーディングのために (2017/7/26) ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21) Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基の「キ」をマスターしよう 第1回 明瞭なコーディングのために (2017/7/19) C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える Presentation Translator (2017/7/18) Presentation TranslatorはPowerPoint用のアドイン。プレゼンテー

  • Google が公開しているソフトウェアの解説(その4)- Performance tools -

    GoogleGoogle Code でオープンソースとして公開しているソフトウェアの解説シリーズ(前回のエントリ)の第 4 回です。今回は Performance tools について紹介します。この Performance tools は、実際に Google 社内で広く使われており、特に、C++ でテンプレートを使用するマルチスレッドアプリケーションを開発する際に役立ちます。Linux 環境を主に対象としています。 Performance tools とは? C や C++ でプログラムの書いたことのある多くの人は、「プログラムを高速化したいけれど、どこが一番のボトルネックか分からない」とか、「メモリリークがあるようだけれど、どこで発生しているか分からない」といった問題で苦しめられた経験が一度くらいはあると思います。もちろん、こうした問題の解決策として、アドホックにプログラムをチ

    Google が公開しているソフトウェアの解説(その4)- Performance tools -
  • IronPythonの特徴

    はじめに CLRのバージョン1.0が登場する前のこと、Microsoftは、さまざまな企業や学究機関の協力の下、.NET上で動作する言語の開発を「Project 7」というコードネームで進めていました。そんな言語の1つに、ActiveStateが開発したPython for .NETがありました。この言語はきちんと動作したものの、Project 7では次のように判断されました。「現行のシステムでは速度が遅すぎる。したがって、現在の実装はデモンストレーションの域を出ず、他の用途では役に立たない注1」。さらに、パフォーマンスがふるわない原因の一端は「Python for .NETコンパイラの実装がシンプルなこと」にあるとしたものの、「.NETの内部実装やReflection::Emitにも原因がある」とも述べていました。 「CLIはその設計上、動的言語との親和性が低い注2」というのが、従来の通

    IronPythonの特徴
  • Boost入門1 – GIL – Rest Term

    boost::gil。Adobe社の作った画像処理ライブラリです。 環境を準備するのがけっこう大変でした。せめてJpegだけでも入出力できれば、、、と四苦八苦。VCを使っている人は下のサイトを参考にすればかなり近道になります。 libjpegの使い方(Visual Studio 2008)(MASATOさんに感謝) まず、libjpegmd.lib、libjpegmdd.lib、libjpegmt.lib、libjpegmtd.libを生成。後でVC側でランタイムライブラリの指定を行います。(2008ではシングルスレッド用のは廃止)libjpegmdとlibjpegmddはDLL対応のライブラリ。DLL対応でコンパイルするとライブラリが実行ファイルに静的リンクされないので、ファイルサイズが小さくなります。ただし、実行ファイルのみを他の環境に持って行く場合にランタイムDLLが存在していないと

    Boost入門1 – GIL – Rest Term