Get answers to complex questions with Phind's AI answer engine.
ChatGPT時代の生き残り戦略 ChatGPTが話題です。これからChatGPTに代表される生成AIが当たり前に使える時代が来ると「ソフトウェアエンジニアという職業は無くなる」と脅かす人がいます。新卒で晴れてエンジニアになった方は、もしかしてちょっと後悔しているかもしれません。正直に言えば、ChatGPT登場時は、私も将来が少し不安になりました。 でも安心してください。今のところ、生成AIは優れた人間のエンジニアが書くようなコードは書けないようです(今のところは、ですが)。ChatGPTが生成するコードにはセキュリティ脆弱性が含まれるものが多かったと報告する論文もあります。業務で使えるような高い品質のコードを書くには、生成AIはまだまだ力不足なようです。 少なくとも当面は、生成AIの高速なプロトタイピングの強みなどを活かしつつ、人間のエンジニアが主役となって高品質のコードを書いていく時代
コナーセンスとは コナーセンスはソフトウェアの品質メトリクスであり、結合度の分類方法です このサイトではさまざまな種類のコナーセンスをコードの改善に役立つ実例付きで紹介しています。 変更の可能性 あらゆるコードに変更の可能性があります。現実世界が変化するのに合わせて、私たちのコードも必ず変更されます。コナーセンスは、長期的な観点から柔軟性のあるコードを書くにはどうすればよいかについて洞察を提供してくれます。コードベースの柔軟性を維持することは開発速度を長期的に維持するために不可欠です。 柔軟なメトリクス コナーセンスはメトリクスであり、他のメトリクスと同様に不完全な測定値です。しかし、コナーセンスはより包括的なアプローチを取っています。コードベースのコナーセンスは以下の3つの独立した軸で判断する必要があります。 強度。コナーセンスが強いと発見が難しい、またはリファクタリングが難しくなります
構造は、凝集度が高く、結合度が低い場合に安定する - Larry Constantine 私たちプログラマーは、その仕事において、できる限り良いコードを書きたいと考えます。しかし、「良いコードとは何か」という問いに対して答えるのは、そう簡単ではありません。「良さ」を測るには、「何に対して」という軸が必要であり、その軸は一つではなく、さらには、コードを書いている状況に応じて、大事にすべき軸が変わるということも往々にしてあるからです。そうしたとき、私たちは何らかの尺度でもってコードを測って、そのときのコンテキストにおいて良い落とし所を定めます。 そのようなときに、コードの品質を測る軸としては、有名なものには「凝集性(Cohesion)」と「結合度(Coupling)」があります。ここでは、そのうちの「結合度」を測る指標の一つとして「コナーセンス(Connascence)」を紹介します。 コード
CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して
There’s No Such Thing as Clean CodeのHacker Newsコメント経由でコードやシステム設計・最適化についての良いコメントを見つけた。どうやらHacker Newsで何度も引用されているらしいが日本語で言及された記事が見つからなかったので取り上げてみる。 コメントは2016年のSandi MetzのThe Wrong Abstractionに関するもので、発言者のcurun1rいわく「私は設計の優先順位をこの順序で学習することで、優れた開発者になれた」。*1 4つの基準と優先順位のガイドライン 状態 > 結合 > 複雑性 > コード量 私は状態 (state)、結合 (coupling)、複雑性 (complexity)、コード量 (code) の順に削減することでコードを最適化する。 コードがよりステートレスになるなら、結合を増やすこともいとわない 結
【Codewars】ブラウザでコーディングの基礎からトレーニングできるサイト (ブラウザでvimが使えて32種類のプログラミング言語に対応。4000個以上の問題が投稿されています!)JavaPythonJavaScriptC#CodeWars 32種類のプログラミング言語を使ってテストファーストの開発スタイルを身に着けることができます。 この前【CodinGame】をご紹介しましたが、簡単な問題が少ないのと問題を検索する方法がないので、毎日ドリルのようにトレーニングするのには【CodinGame】はちょっと不向きだと思います…ので、今回は Codewars を紹介したいと思います。 CodinGame については 【CodinGame】ブラウザでコーディングの基礎からトレーニングできるサイト (疑似ゲーム開発環境を使って学べます。解答は25種類のプログラミング言語から選択して記述可能!)
Kubernetesって何? -大規模なKubernetesを運用するKubernetes as a Serviceチームの話を添えて-
The key to achieving world-class expertise in any skill, is to a large extent, a matter of practicing the correct way, for a total of around 10,000 hours — Malcolm Gladwell in OutliersI'm certainly not a world-class expert, but I have put my 10,000 hours of deliberate practice into programming. Here are 31 of my reflections on programming. These are reflections only about pure coding — no lessons
2019年2月16日に開催されたLaravel JP Conferenceで『抽象化って何?』というトークをしてきました。 conference2019.laravel.jp トーク内容 数独アプリの正解チェック機能をお題にして、以下の3つを目標に話しました。 現実世界における抽象化とはどのようなことなのか、理解する プログラミングにおける抽象化とはどのようなことなのか、理解する 抽象化の指針を知り、抽象化の良し悪しを判断できるようになる このトークの中で、以下の3つを、「プログラミングにおける問題の抽象化の指針(仮)」とし、説明しました。 適切な命名:名前と内容が一致していること 抽象度の統一:ある側面が取り出されたものだけで辻褄が合うこと 狭い範囲:考慮する特徴の数が小さくなっていること 参考書籍:S・I・ハヤカワ「思考と行動における言語」 思考と行動における言語 作者: S.I.ハヤ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く