【11種言語ぬるぽ】なにも無いがある、Nullとの上手な付き合い方
プログラミングをするときに登場する、Null(ヌル), Nil(ニル), None(ナン)といったキーワード。なにも無い、設定されてない、無効である…そういった類をあらわす値ですね。 そんなNull、プログラミングでは厄介な存在です。ちょっ
【コード改善】今日から使えるリファクタリングテクニック12選
リファクタリング。プログラミングにおいて、外部の振る舞いを変更せずに、コードの内部構造を改善するプロセスのこと。 大規模な変更や、新機能の追加前に、リファクタリングを行うことは効率化のうえで重要とされています。 ただ、リファクタリングという
【Dockerを体験してみよう】簡単サンプルでためす便利なコンテナ技術
近年は、Dockerに代表されるコンテナ技術が、広く普及しています。インフラ構築、クラウドアプリケーション、マイクロサービスアーキテクチャ。いまやシステム開発には欠かせない技術です。 そんなコンテナ技術、一度使えば便利さが分かるのですが、
【現役エンジニアおすすめ】プログラミング最新情報の入手元ガイド
プログラミングの世界で登場する、さまざまな技術。毎日のように新しい技術が登場します。プログラマーにとって最新情報の入手は不可欠です。 巷にあふれる情報を、どう入手すればよいのでしょうか?現役エンジニアでプログラマーである管理人が、普段どこか
拠点と拠点をつなぐネットワーク通信。データをIPデータグラム形式でパッケージングし、様々な通信回線に乗せて送受信されます。 さかのぼること1990年に、ある独創的な伝送手段が提案されました。それが、伝書鳩キャリアを活用したIPデータグラム伝
【ソフトウェアテストの7原則】悩み多きテストに役立つ大事な指針
ソフトウェアテスト。設計通りにソフトウェアが機能しているかを確認する、大事なプロセスです。 大事なのは分かるのですが、じゃあ、テストでなにをどこまでやればよいの?判断にとても悩むプロセスでもあります。 そんなテストへの指針を示すのが、「ソフ
【11種類の言語比較】プログラミング言語の”処理速度”を考える。
C++,Java,Python,Go,Rust…いろいろあるプログラミング言語の違いのひとつが、処理速度の違い。 C++は速い Pythonは遅い RustはC++並み などいろいろ言われます。 でも、そもそもなんで、プログラミング言語ごと
【世界一流エンジニアの思考法】AI時代に生き残るプログラマーとは
ChatGPTといった生成AIの登場で、世の中は大きく変わりました。便利さが増した一方、人間の仕事が奪われるのでは?という不安も渦巻いています。 要求を言えばコードもすらすら書ける生成AI。プログラマーは、AIに職を奪われるのでしょうか?
【jQueryからVue,Reactへ】リアクティブ型へのパラダイムシフト
Webフロントエンド技術は急速に変化しています。かつてのjQueryから、いまはVue.jsやReactといったシングルページアプリケーション(SPA)が主流の時代。 これらのベースはいずれも、HTMLやJavaScript。でもその見た目
【管理人の愛読書】~岩田さん 岩田聡はこんなことを話していた~
岩田聡さん。任天堂の元代表取締役社長です。 2015年、55歳という若さで、胆管腫瘍により残念ながらお亡くなりになりました。 岩田さんは、もともとは生粋のプログラマーであり、そこから42歳で任天堂社長に就任されたという異色の経歴を持っていま
【リーダーの作法】ささいな積み重ねが作る、本物のリーダーシップ
良いリーダーとなるためには、どのような学びが役に立つでしょうか? 様々なマネジメント手法を学ぶのもひとつので手。でも一番役に立つのは、本物のリーダーが語る、本物の物語。先駆者の実体験からくるノウハウは、実感を持って受け入れられます。 そんな
【もうforはいらない】関数型コレクション操作をマスターしよう
プログラミングよく登場する、配列やコレクションの操作。forループで実装する人が多いでしょう。 実は、forを使わずにできる便利なコレクション操作方法があります。関数型プログラミングをベースとしたコレクション操作です。昨今では、たいていのプ
【実は別物】並行プログラミング/並列プログラミングの違いを理解しよう
並行プログラミングと並列プログラミング。プログラミングで立ちはだかる、鬼門のひとつ。 簡単にいけば、どちらも「複数のコードを同時に実行する」ことではあります。 じゃあ、こんなこと思ったことありませんか。 並行プログラミングと並行プログラミン
【達人プログラマー】新装版の違いに見るプログラミング20年の歴史
書籍「達人プログラマー」。すべてのプログラマーが読むべきエッセンスが込められた名著です。 初版は2000年の古典ですが、20周年を記念した新装版が、新たに出版されています。 第2版では、ほぼ3分の1は新たに書き下ろし。また残りの部分も書き直
【だからあなたの問題は解決しない】問題、原因、課題を正しく定義しよう
プロジェクトには、常に問題が発生します。進捗の遅れ、重大なエラーの発生…いろいろです。 問題を解決したい。でも一向に解決しない… それはもしかしたら、「問題」「原因」「課題」を正しく定義できていないのかもしれません。正しい定義の仕方を身につ
【達人プログラマー】プログラミングで達人が意識する5つのマインド
プログラミング。最も基本的な仕事は、やりたいことをコンピュータに伝えること。 しかしプログラマーは実のところ、聞き手、アドバイザー、翻訳者、独裁者と、実にさまざまな役割を使い分けて仕事をこなしていきます。それは、毎日小さな奇跡を起こすかのご
【プロジェクトマネジャーが知るべき97のこと】究極のエッセイ集
プロジェクトマネージャー。優れたマネジメントによってチームを成功へと導くエキスパートです。 マネージメントの技術は、様々なところで学ぶことができます。でもマネージャーにとって最も役立つ情報は、「現場で日々精力的に仕事をしてきた人が、何年もか
【ソフトウェアアーキテクトが知るべき97のこと】至高のエッセイ集
ソフトウェアアーキテクト。あまり聞きなれない言葉かも知れません。 ソフトウェアアーキテクトは、高レベルなソフトウェアシステムを定義し設計する人です。ソフトウェアシステムの振る舞いを理解し、適切な技術を選択し、利用者のニーズを満たすように設計
【プログラマが知るべき97のこと】トッププログラマの珠玉エッセイ集
プログラミングの知識は、書籍を読んだり、プログラミング講座を受講したりして、身に着けられます。 でも、プログラミングの本質を知るには、やはり現職プログラマーの話を聞くことが一番です。 トッププログラマーが語る本音のエッセイから、プログラミン
プログラムコードを書き、テストをして動作を検証。正常に動くことが確認できた。 これでプログラムは完成か。それだけでは不十分です。 あなたの書いたコードは、確かにあなたは分かるし、正しく動く。しかし考えてみてください。そのコード、ほかの誰かも
【パレート法則で見極めろ】システム開発の優先ポイント把握4選
パレートの法則 Pareto Principle 結果の80%は全体の20%の要素に依存する 「80:20の法則」とも言われます。得られる結果の大部分は、それを構成する要素の一部分で決まってしまう、という法則です。 経済学で使われる法則です
【プロジェクトリーダーベジータ】プロジェクトを救うのはこのオレだ!!!
野望のベジータ ちっ…コーディング量たったの5行…ゴミめ… ピピピピピ…! なにっ!どんどんステップカウンターが上がっていく! …7000行…8000行…!! ほっほっほ なっ…!き…貴様は…! お待たせしましたね 参考までに、私の作ったコ
いまや様々なプログラムコードが、ネットからお手軽に手に入る時代。さらには生成AIが、自動的にコードを作ってくれたりもします。 しかしそれらのコードは、好きに使っていいとは限りません。そこには「著作権」という話があります。 プログラミングを生
クラス設計、むずかしいですね。いろいろな人によって、いろいろな考え方によって、設計の仕方はまちまちです。 考え方を理解するには、身近なお題で設計してみるのが、よい練習になります。ロールプレイングゲームでクラス設計してみましょう。 まずはユー
尋ねるな、命じよ Tell, Don't Ask オブジェクトに、データを要求するのでなく、何をすべきかを指示すること オブジェクトには、やることをズバッと指示しましょう、ということです。 どんなとき使うの? get,get,get…と並ん
【DBはなぜ重要なのか?】ACID特性で考える、データベースの大事なこと
データベース(DataBase:DB)。システム開発に必ずといって登場する、だいじな要素。 「データを取っておくところ」とはイメージできます。でも、データを取っておくだけなんて単純じゃないの。なぜそんなに重要なんでしょう? 「ACID特性」
テスト駆動開発 Test-Driven Development (TDD) まずテストを書き、テストの動作を確認しながら開発する手法 テスト駆動開発、してますか? TDDはプログラムの品質向上にとても有効な手段です。しかし過信しすぎても効果
エラー処理。プログラミングの学習中は、なかなか関心が持たれない。だけど実際には、とても大事な必須の処理。 エラー処理は、どのような考え方で作るべきなのでしょうか。 エラー処理ではなにをするのか? 想定外の事象に対処する プログラムでは、動作
【SPAとは?】簡単シングルページアプリケーションで本質を学ぼう
SPA(Single Page Application)、シングルページアプリケーション。 いまWebアプリは、SPA全盛の時代。Angular、Vue.js、React といった名前、見聞きすること多くなりました。 ただこのSPA、いまい
【プロジェクトリーダー向け】パーキンソンの法則~10日間の仕事は10日前には終わらない
パーキンソンの法則 Parkinson's law 与えられた時間はすべて使いつくされる 仕事の量は、完成のために与えられた時間をすべて満たすまで、膨張します。 本来5日で終わる仕事であっても、10日間のスケジュールを与えた場合、その仕事は
【プロジェクトリーダー向け】コンウェイの法則~よいソフトウェアはよい組織から
コンウェイの法則 Conway's law システムの構造は、システムを設計する組織を真似る コンピューター プログラマーの、メルビン・コンウェイの発言からきています。内容は次のとおり。 システムを設計する組織は、その組織のコミュニケーショ
【Webアプリとは?】実は単純、Pythonで簡単Webアプリを作ってみよう
Webアプリケーション。なんだかものすごく複雑そうなイメージがありますが、 Webアプリなんて、その本質は、実に単純なものです。PythonでかんたんWebアプリを作って、本質を学びましょう。 Webアプリとはなにか? Webアプリとはなに
【すっきり解説】プログラムってなに?~プログラミング目線で語る新解釈
プログラミングを学ぶとき、誰しもがいちばん最初に思いつく疑問。 プログラムって、なに? 一般的には「一連の手順」などと言われます。ただプログラマーとしては、この説明は本質とは思えない。 プログラミングの立場から、プログラムとは何か?の解釈を
【ChatGPT】爆速Pythonプログラミング~簡単ゲームをつくろう3選
ChatGPTを使って、Pythonプログラミング! ChatGPT爆速プログラミングシリーズ 【ChatGPT】爆速JavaScriptプログラミング~3ステップでお問い合わせ画面を作ろう 【ChatGPT】爆速JavaScriptプログ
【アンチパターン】さりげなく伝えるプログラミングNGポイント(クラス編)
コーディングをしていると、こんなシチュエーションありますよね。 つぶやき あの人の書いたコード、なんかちょっとイマイチ… でも、直接そういうと、なんか失礼… そんなときは、「アンチパターン」の言葉を使って、さりげなく相手に伝えましょう。 オ
【アンチパターン】さりげなく伝えるプログラミングNGポイント(上級編)
コーディングをしていると、こんなシチュエーションありますよね。 つぶやき あの人の書いたコード、なんかちょっとイマイチ… でも、直接そういうと、なんか失礼… そんなときは、「アンチパターン」の言葉を使って、さりげなく相手に伝えましょう。 車
【アンチパターン】さりげなく伝えるプログラミングNGポイント(基礎編)
コーディングをしていると、こんなシチュエーションありますよね。 つぶやき あの人の書いたコード、なんかちょっとイマイチ… でも、直接そういうと、なんか失礼… そんなときは、「アンチパターン」の言葉を使って、さりげなく相手に伝えましょう。 ス
無限デバッグ編 「おかしい…バグは直したはずなのに、まだアプリが動かない…」 「なにか見落としがあるのか…?考えろ…考えろ…」 「そうか、バグは1つだけじゃないんだ!」 「一度で、すべてのバグを直さなければっ!」 「そうでなければ、このアプ
「ブログリーダー」を活用して、なおにぃさんをフォローしませんか?