ソフトウェア設計のトレードオフと誤り ―プログラミングの際により良い選択をするには 作者:Tomasz Lelek,Jon SkeetオライリージャパンAmazon ソフトウェア開発経験の最初の段階で「一つの機能には複数の選択肢が有って、メリット・デメリットがそれぞれ有り、それらはトレードオフの関係に有り、容易には決めることができない」という事実を教えてもらえる機会に遭遇できていれば、その人はとても幸運だと思う。 先輩や上司が一方的に、「一つの確かな方法」をただ伝える、みたいな場面(それが必ずしも一般的にはそうとは言えない方法であったとしても)も多いのではないでしょうか。 どんなに設計上の意思決定ができている人でも、その頭の中では「色々な選択肢の中で悩んで、ベストではないかもしれないけど、前の前の課題に対してよりベターな方法」を選んでいる。でもその思考の過程を見せてくれる人はとても少ない。
日本語変換システムの「ATOK」も「Tech Ver.33」となり、6年ぶりに変換エンジンを改定。個人による入力の特徴を抽出し変換に生かす「パーソナライズドコア」を搭載する。直近の変換結果にとらわれず、過去の総合的な変換傾向から変換を行う。例えば、日常的に「単価」という変換を行っているビジネスパーソンの場合、一時的に「短歌」などの変換を行っても、「単価」が優先的な候補として表示される。 昨今、ソフトウェアのサービス化やサブスクリプションが増加しているが、一太郎は引き続きパッケージとして販売。通常版が2万7500円、三省堂国語辞典や図形描画ソフトの「花子Personal」などが同梱された「一太郎2023プラチナ」が4万7300円となっている。 ユーザーの多くは50代、60代。ただし若者の取り込みも 日本のコンピュータソフトの歴史だともいえる一太郎。いったいどんなユーザーが使っているのだろうか
いい感じのオープンソース・ソフトウェアを書いて、それを元に起業することを考えてみたことがある人は結構いるようだ。実際に僕はここ1年半ほど、自作のオープンソース・ソフトウェアを元にビジネスを立ち上げようと試行錯誤してきた。その経験についてここでシェアしてみようと思う。 あらすじ薄々予期していたことではあったけれど、結論から言うと、そんなにはうまくいかなかった話ということになる。要点をまとめると次の通りだ。 「moldリンカ」というオープンソースのツールを開発して、それを元にビジネスを行おうとしていた そこそこ稼ぐことはできたものの、大きなリターンを得るのは難しかった ほとんどの企業はオープンソースを大々的に活用していても「無料のソフトウェア」にはお金を払うつもりはないし、払いたくても社内制度上できない 大きなリターンを得たいのならば、自作のオープンソース・ソフトウェアを元にサービスを立ち上げ
「プログラムを設計するときに行った技術的な判断や選択が、後日大きな制約となる」これはプログラマなら誰しも経験したことのあることでしょう。本書は、そんなプログラミングにおける各種の設計上の選択について、トレードオフの内容やそれがどのような誤りを招きうるのかという点を踏まえて紹介する書籍です。 コードの重複、エラーや例外処理、柔軟性と複雑性のバランスのようなコードレベルの選択から、APIの設計、時刻の扱い、データローカリティのようなシステム寄りの話題、またライブラリの選択、分散システムの一貫性と原子性、バージョニングのようなより抽象度の高い内容まで、さまざまなシチュエーションにおけるトレードオフの実態と、その失敗例をとり上げます。 本書は日々のプログラミングにおける解決策のヒントを得るだけでなく、より幅広い設計上の知見を広める上でも役に立つでしょう。 正誤表 ここで紹介する正誤表には、書籍発行
個人事業主はどんなクラウド会計ソフトを使っているのか──MM総研は4月25日、こんな調査結果を発表した。最も多かったのは弥生の「やよいの青色申告 オンライン」「やよいの白色申告 オンライン」(52.8%)だった。 2位は「freee」(26%)、3位はマネーフォワード(15.3%)。順位はMM総研による22年4月の調査と変わらず、3社による寡占状況にも変化はなかった。ただし各社の割合は変わっていた。弥生は1.1ポイント、マネーフォワードは0.2ポイントダウン。一方でfreeeは0.6ポイントアップした。 会計ソフト利用者におけるクラウド会計ソフトユーザーの割合も変化。個人事業主を対象に、使っている会計ソフトの提供形態を聞いたところ「クラウド会計ソフト」と答えたのは31%(前年調査から1.2ポイント増)。インストール型と答えたのは55%(同3ポイント減)だった。MM総研によれば、クラウド会計
私はこれまで6年間日本で働いてきましたが、昨年11月にプロフェッショナル・スクラム・トレーナーになってから、日本のスクラムやアジャイル開発の現状と今後の展望についてよく質問を受けるようになりました。そうした質問に触発されて私自身もこのテーマについて掘り下げて調べたり考えたりするようになりましたので、この記事にまとめました。(English version here) スクラムとアジャイル開発の現状 1986年、当時 一橋大学教授であった野中郁次郎氏と同大学の竹内弘高氏は「The New New Product Development Game」(Harvard Business Review) という非常に有名な研究論文を発表しました(1)。この論文は日本企業による新製品開発プロジェクトの成功事例を紹介すると共に、これらのプロジェクトに共通する特徴として「自己組織化されたチーム」「開発フェ
[速報]マイクロソフト、ChatGPTベースの「Microsoft 365 Copilot」を発表。AIがExcelの数字を分析しグラフ化、PowerPointを自動生成、長いメールを要約など マイクロソフトはオンラインイベント「The Future of Work: Reinventing Productivity with AI」を開催し、Microsoft 365にChatGPTベースのAI機能を組み込んだ「Microsoft 365 Copilot」を発表しました。 Microsoft 365 Copilotは今後数カ月以内にWordやExcel、PowerPoint、Outlook、Teamsなどすべてのプロダクティビティ製品群に搭載される予定。利用料金やライセンス形態などは今後発表予定とのこと。 デモで紹介されたMicrosoft 365 Copilotの主なポイントをまとめま
「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が
Innovative Tech: このコーナーでは、テクノロジーの最新研究を紹介するWebメディア「Seamless」を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。Twitter: @shiropen2 ドイツのJohannes Gutenberg University Mainzと英University College Londonに所属する研究者らが発表した論文「An Analysis of the Automatic Bug Fixing Performance of ChatGPT」は、ChatGPTが自動バグ修正にどれほどの精度を発揮するのかを検証した研究報告である。 プログラマーがソフトウェアのバグを発見し修正する作業を支援するために、バグ修正ソフトウェアパッチを自動的に提案する自動プログラム修正(APR)システムが導入されている。主要なA
はじめに アーキテクチャ・デザイン全般 ソフトウェアアーキテクチャの基礎 Clean Architecture 達人に学ぶソフトウェアの構造と設計 Design It! ソフトウェアシステムアーキテクチャ構築の原理 データ指向アプリケーションデザイン マイクロサービス マイクロサービスアーキテクチャ マイクロサービスパターン 実践的システムデザインのためのコード解説 ソフトウェアアーキテクチャ・ハードパーツ ドメイン駆動設計 エリック・エヴァンスのドメイン駆動設計 ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本 現場で役立つシステム設計の原則 要件定義 はじめよう!プロセス設計 ~要件定義のその前に はじめよう! 要件定義 ~ビギナーからベテランまで はじめよう!システム設計 ~要件定義のその後に Web, Web API Webを支える技術 プロになるためのWeb技術
IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場 テキストから高度なイラストを生成するAIや、人間と自然な対話を可能にするAIが最近話題になっています。 この人間と自然な会話をするAIチャットの代表的なサービスであるChatGPTの派生サービス(Variant of ChatGPT)をVisual Studio CodeなどのIDEに統合し、開発中のコードについて「この関数のテストコードはどこ?」などと対話できる「qqbot」が登場しました。 開発したのはDan Robinson氏。 Introducing qqbot, a variant of ChatGPT that lives in your IDE. The cool thing about qqbot is that it k
ツイッターで「ソフトウェアエンジニアとしてキャリアを歩むなら、SIer はおすすめできない」と発言している方に対して、現役 SIer 社員が反論していて、ちょっとした騒ぎになっていた。 10 年間 SIer で働いた経験がある人間として、SIer で「ソフトウェアエンジニア」のキャリアを積めるかどうかについて見解を示したい。 頼むからプログラミング好きな高学歴の人は下手なネームバリューを気にしてSIerに行かないでくれ。まずSIerの研修が簡単すぎてつまらんと思うし、自分の方がプログラミングや技術分かるのに年収同じなのかって絶望するわけで。ほぼ転職する未来が待ってるんだから、最初から候補にも入れない方が良い。 — サカモト@エンジニアキャリア論 (@sakamoto_582) December 15, 2022 やはり何故かSIer叩きをしていると勘違いしてる人が大勢いるけど “SIerに
指定した音声ファイルを、楽器ごとのパートに分解してくれるソフトです。 音声ファイルをドラッグ&ドロップで放り込むと、該当のファイルを ボーカル ベース ドラム その他(キーボード、ギター 等) ボーカル以外のインストゥルメンタル といった 5 つのファイルに分解してくれます。 処理を GPU(CUDA)で実行することもできます。
12月10日の2022ソフトウェアテストアドベントカレンダーです。 Launchable社でエンジニアとして働いているcvuskと申します。機械学習界隈では機械学習を実用化するためのシステム開発の本を書いてたります。もし良かったら読んでみてください。 『機械学習システムデザインパターン』 『機械学習システム構築実践ガイド』 本ブログでは機械学習を用いてテスト実行を効率化する手法として、Predictive Test Selectionについて説明します。テスト実行時間やコストで課題を抱えているエンジニアに役に立つと幸いです。 昨今の開発におけるテスト事情 2002年に『テスト駆動開発』が世に出て、ソフトウェア開発でテストを書くことが常識になって早20年が経っています。その間にクラウドの登場やDevOpsの普及により、テストをCI/CDパイプラインで自動実行し、コードとプロダクト品質を維持す
「オブジェクト指向神話からの脱却」というあおり気味タイトルの特集をWEB+DB PRESS vol.132で書きました。 12/24発売!クリスマスプレゼントです WEB+DB PRESS Vol.132 作者:きしだ なおき,加藤 尋樹,斉藤 洸紀,牟田 裕太郎,吉澤 政洋,朝日 リナ,鈴木 僚太(うひょ),川島 義隆,五十嵐 進士,末永 恭正,佐藤 雄太,吉井 健文,牧 大輔,西山 和広,吉田 花春,古川 雅大,岡林 大,池澤 春菜,和田卓人,日高 正博,はまちや2,竹原技術評論社Amazon 大まかには、「オブジェクト」でソフトウェアをぜんぶ考えるということに無理があったので、パーツそれぞれ適したやりかたでやっていこうぜ!という内容です。 ソフトウェアを切り出したときのパーツとしてのオブジェクトの特性が同質であるという暗黙の前提があって、だから「オブジェクトの話をすればソフトウェア開
「ソフトウェア分野で迅速なイノベーションを実現するには、それぞれが何に取り組んでいるのか、誰が何をコーディングしているのか、把握しておくことが不可欠です」 11月21日にツイッターのサンフランシスコ本社で開かれた全社会議の場で、マスク氏は大規模な人員整理が完了したこと、(テスラのような)テキサス州への本拠移転計画は考えていないことを語っているが、上記のメールはその数時間後に送られた。 なお、Insiderがすでに報じたように、同社のフルタイム従業員数は現在約2300人、10月末にマスク氏が経営権を握った時点の7500人に比べて3分の1以下まで激減した。 メールは、エンジニアらに各自報告を求める内容として、「どんなプロジェクトに取り組んでいるか」「何を到達目標としているのか」の説明に加え、「その週に書いたコードのサンプルまたはファブリケーター(Phabricator、コードレビュー用ツール)
AWSは、ローカルマシン上にLinuxコンテナのランタイム、ビルドツール、コマンドラインツールなど一式を簡単にインストールし、コンテナを用いた開発環境を開始できるソフトウェア「Finch」をオープンソースで公開しました。 Today we are happy to announce a new open source project, Finch. Finch is a command line client for building, running, and publishing Linux containers. Learn more in this blog from @estesp and @ChrisShort https://t.co/5qDdio806E#AWSCloud #containers #opensource pic.twitter.com/TDfcYlwwIs
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く