ソフトウェア開発において「こうあるべきだ」という典型例を集めたものデザインパターンであるのに対し、「こうあってはならない」という典型例を集めたテンプレート集がアンチパターン。
「新装版 アンチパターン―ソフトウェア危篤患者の救出」 http://store.sbpnet.jp/bm_detail.asp?sku=4797321385
に詳しい。
概要 2021年4月28日に行われたssmonline #9の発表内容・感想のまとめです。 speakerdeck.com 運用組織のアンチパターンとは 波田野裕一氏は、運用組織のアンチパターンとして以下3つを挙げていました。 優秀な人で支援組織を作る マトリクス組織にしてしまう 組織名を企業規模より盛ってしまう 優秀な人を現場から引き剥がすのは一般にアンチパターンである 私としては、「優秀な人で支援組織を作る」というのは、「優秀な人を現場から引き剥がす」という意味であると解釈しました。その上で、優秀な人を現場から引き剥がすのは一般にアンチパターンといえます。 あらゆる事業の前提として、事業リ…
良書良書と聞いていたSQLアンチパターンですが、題名からSQLに特化した内容と思い込み、今まで読んでいませんでした。 www.oreilly.co.jp 先日、本書に記載されている「とりあえずID」のアンチパターンを踏んでいることを指摘いただき、購入に至った...という経緯です。 ※電子版が欲しかったため、オライリーから購入しました。 本記事には、第1部をゆっくり、他部をざっくりと読み進めた際、思ったこと等を記載します。 新卒に入ったプロジェクトでは、第1部に記載されていたアンチパターンを全て網羅していた(唖然) ジェイウォーク(信号無視) ナイーブツリー(素朴な木) IDリクワイアド(とりあ…
人よアンチパターンを恐れるなかれ。 キミがそのパターンをアンチパターンと見なしていない限りは、アンチパターンではないのだ。 人は親のもとで育つ。育ててくれたものへの感謝と尊敬の念は忘れてはならない。 しかし、忘れてはならないのは、いつか親離れするときが来ると言うこと。そして、自分自身もいつか親になるときが来る。 キミを今いるところまで育ててくれたのは何だろうか。尊敬できる先輩か、人気の言語か、重厚なフレームワークか、権威ある書籍か、活発なコミュニティか。 もしかしたら、育ての親はアンチパターンをはらんでいるかもしれない。しかし親を恨むことはない。その親も、多くの先人たちが育ててきたものに違いは…
SQL文に自信がなかったので1年前くらいに買ったスッキリわかるSQL入門 第2版 ドリル222問付き! - インプレスブックス(以下、本A)を復習した。 特に第7章「副問合せ」の練習問題7-3の3を解いてみて、あー、なるほどと思ったのでメモする。まずは、カラムなどは本と違うけど、データを用意する。 ちなみに、名前の作成は、日本人名前自動生成機 -- 高樹凱.COMで行った。 create table family ( id int, name varchar(10), profession varchar(10), parent_id int ); 中身はこうなっている。 select * f…
あかんやつから学ぶDB設計とSQL回り ITエンジニアに読んでほしい!技術書・ビジネス書大賞2017入選のオライリー本。ネット上でも書評や勉強会をよく見る定番本になりつつあるので、DBエンジニアならもう読んだ人、共感した人も多いのではないでしょうか。 タイトルは「SQL」となっていますが実際にはDB論理設計、DB物理設計、実際のSQLクエリ、アプリケーション開発の4カテゴリに分け、計25パターンのあかんやつを説明しています。 デザインパターンやアーキテクチャパターンなど、何かのパターンを学ぶのに「こうあるべきだ」の理想から学ぶのもありですが、「こうやるとマズイよ」とアンチパターンやバッドプラク…
オブジェクト指向を使ってアプリケーションを作るために、オブジェクト指向の設計方法を学んでいます。 今回は、「オブジェクト指向設計実践ガイド」の第2章:単一責任のクラスを設計するを読んでまとめていきます。 なお、使用する言語はPythonです。 オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方作者:Sandi Metz技術評論社Amazon aisinkakura-datascientist.hatenablog.com 2.1 クラスに属するものを決める この節ではTRUEなコードを書くべきとの主張がされています。自分の理解を深めるために、TRU…
この記事は何 実は株式会社 HERP で業務委託として Web エンジニアのお仕事をしているんですが、その中でブラウザテスト(E2Eテスト)を導入する業務に携わりました。*1 業務の中で、Autify などのサービスを利用せずに自前(Puppeteer + Mocha)でブラウザテストを構築しました。 実装やら設計を進める中で学びがあったので、ブログという形でブラウザテストの導入において考えておくべきこと、注意しておくべきことをまとめようと思います。 以下の内容は完全に主観と経験に基づくもので、絶対的に良いものでもなければ、ケースによってはアンチパターンを踏み抜いている可能性もあります。 こう…
⚙️はじめに 掲題の通り、『ソフトウェアアーキテクチャの基礎―エンジニアリングに基づく体系的アプローチ』を読み終えたので、まとめておく。 www.oreilly.co.jp 本書は以下の章立てで構成されている。 1章:イントロダクション 第Ⅰ部 基礎 2章:アーキテクチャ思考 3章:モジュール性 4章:アーキテクチャ特性 5章:アーキテクチャ特性を明らかにする 6章:アーキテクチャ特性の計測と統制 7章:アーキテクチャ特性のスコープ 8章:コンポーネントベース思考 第Ⅱ部 アーキテクチャスタイル 9章基礎 10章:レイヤードアーキテクチャ 11章:パイプラインアーキテクチャ 12章:マイクロカ…
Microsoft.Extensions.Logging ロガーの利用方法 static オブジェクトの利用 汎用ホストの利用 汎用ホストの利用(WPF) Microsoft.Extensions.Logging www.nuget.org docs.microsoft.com ロギング用のライブラリ。 ILogger インタフェースにロガーを注入して利用する。 以下に出力できる。 デバッグウィンドウ コンソール OSのイベントログ Microsoft 以外のライブラリも使用できる。 NLog、Log4Net など DI により、使用ライブラリを容易に切り替えられる。 Nuget より "Mi…
はじめまして、テストオペレーショングループのミストレイです。 先日京都にて開催された「JaSST'22 Kansai」に参加してきました。 本記事はそのイベントレポートとして、講演内容を簡単にまとめたものになります。 今回のテーマは「テストオラクルのない世界」です。 テストオラクルとは 当日の様子 スコープ 基調講演 招待講演 総括 テストオラクルとは まず、テストオラクルとはなにかという話なのですが、 JSTQBの用語集ではテストオラクルについて、以下の様に説明されています。 テストオラクル(test oracle) テスト対象のシステムの実行結果と比較する期待結果のソース。 参照:ISTQ…
こんにちは、登降園・請求管理機能*1チーム所属の髙橋です。 コドモンではソフトウェアの品質を向上させて、価値提供のスピードをあげるために技術負債の解消を進めています。 note.com 独立性が高い機能については、順次リプレイスして技術負債の解消と陳腐化した技術の刷新を進めていますが、複雑度が高くコードベースが大きい機能については、様々な制約からすぐにリプレイスに着手することができません。 そこで登降園・請求管理機能チームにおいては、課題を整理しつつ段階的にリプレイスに向かう方法を取ろうとしています。 この記事は昨年1年間で集中的に取り組んだ請求管理機能の技術負債解消の取り組みについて説明して…
CodinGameのコンテスト、Green Circleに参加しました。 www.codingame.com お題はちょっとゲームバランス偏り気味なゲームAIです。 結果はGoldリーグで、全体1758人中92位でした。 (今回の記事はゲーム内容への言及薄めで、実装寄りのお話が多いです) 問題 システム開発に役立つスキルを取得して使いながら、5つのアプリをリリースしてね。 (デッキを強化して勝利点を5点取ってね) 4リリースまでは技術的負債(ペナルティカード)を受け取ることで条件の穴埋めが出来るけど、5リリース目は完全に条件を満たさないと駄目だよ。 詳しいルールはツカモさんが翻訳記事を書いてく…
ツイート チームトポロジー #今日の30分 -3分。「チームトポロジー」KindleでNo.1167まで。認知負荷について。コードベースの複雑化、肥大化に伴い、認知しなければならない要素が増えている。ツールの多様化、複雑化もそれに拍車をかけ、チームへの負担が大きくなり続けている。責任範囲を調整し、これを軽減すること。— ざっきー dev (@zakky_dev) 2022年6月20日 #今日の30分 -3分。「チームトポロジー」KindleでNo.1197まで。ドメインの種類を制限し、チームの認知負荷を軽減する。まず業務のドメインをシンプル、煩雑、複雑なものに分類する。チームが担当しているドメ…
< 目次へ 例 和暦をそのまま文字列として入力するのはアンチパターンです。編集しづらく、機械による読み込みにも向いていません。資料の「修正後」にあるように西暦を併記するのも有効です。 別解として、データは汎用性の高い日付値として入力し「セルの書式設定」で見た目だけを和暦表示にする事もできます。以下に手順を詳述します。 アリスグリント RIDDLE JOKER 式部茉優 1/7スケール PVC製 塗装済み 完成品 フィギュアアリスグリント(Alice Glint)Amazon
この記事の目的 そんなに読者がいると思えないので、あくまで退職時の状況をまとめます。 なにをやってきたのか 簡単に言えば、データエンジニアの初心者的な役割でした。 取り扱ったシステムの概要は Kubernetes上の何台も経ったサーバー(厳密に言うならPodのコンテナ上にたったサーバーとでもいえばよい?)ログを収集し、データベースにデータを入れるというのをrubyのミドルウェアとphpのノンフレームワークで作っていました。 このデータを使ってさらに他社のログ基盤へ連携するということもしましたが、いろんな思惑があって、それはそれは自主規制 辞めようとしたきっかけ データエンジニアはデータサイエン…
片方はもう死語かもしれないが、わたしが多感な時期を過ごした社会は「ウェイ」と「オタク」の対立の中にあった。「ウェイ」というのは恋人がいたり、友達とカラオケに行ったり、親に連れられて以外の理由で服屋に行くことがあったり、とにかくそういう連中のことだ。各々の「ウェイ」がそれらすべての性質を兼ね備えているかと言えばおそらくそうではないだろうが、ひとつも満たさないこともまたないだろう。反面「オタク」とは、特定のなにかに並々ならぬ熱意を注いでいるロマンチスト……などということは特になく、単に「ウェイ」的なものが嫌いで、「ウェイ」の一挙手一投足を逐一非難することで負の連帯を保っている奴らのことだ。 それか…
はじめに パチャンガ乗りたい!1 nikkieです。 最近は、主催者の1人としてミノ駆動本_読書pyを主催しています2。 これまでに1,2章の回、3章の回と2回開催しました。 読書会での学びをアウトプットしていきます。 まずはPythonのdataclassデコレータに関して数回予定しています。 目次 はじめに 目次 まとめ:現時点のnikkieの考え 設計入門本における「データクラス」 ミノ駆動本 増田本(『現場で役立つシステム設計の原則』) アンチパターン「データクラス」とは Pythonにおけるdata class @dataclassでクラスをデコレートすると @dataclassでデ…
# これは何か CREを1年ほどやった感想と共に今後の自分のやりたいことを考えてみた # 今この記事を書いてる時何してる? 電車に乗ってiPhoneのブックアプリで本を読んでる 図書館でこの本を借りて読んだところ、不思議の読書がスイスイ進むようになり、積み本の解消が捗ってる 究極 読書の全技術 作者:齋藤 孝 KADOKAWA Amazon # 何読んでるの 現在所属している企業に、月に1万円まで技術書を買っても良いと言う制度がある この制度で買った本を積んでしまっていたので読んでる 主にオライリー社の本 # で本題 この記事を書く前は1年ぐらい前に買ったDBREの本を読んでた データベースリ…
こんにちは。日本版あすけんのエンジニアリング・マネージャの藤原です。 僕はasken入社当時はAndroidエンジニアでした。 アーキテクチャ改善にも携わってきましたが、今回は、その変容の歴史を振り返ってみようと思います。 意図 過去の偉人たちへの尊敬 補足:アーキテクチャの図について アーキテクチャの歴史 Step1: 日本版あすけんの立ち上げと、No architecture Step2: 米国版Asken Diet立ち上げと、MVP Step3: 新メンバージョイン、課題の残るMulti-Module & Layered architecture Step4: 新メンバーのジョインを控え…
知らなかったシーケンスの使い方 シーケンスなんてORACLEを使ってる人からすれば、なんてことはない、連番を採番するオブジェクトだ。SQL SERVERのidentityのような動きをする。 しかし、別々のテーブルの主キーに使い、IDを被らせないという方法ができるのだ。あまり使う用途はないと思うけど。たまに考えたりする時がある。 AレポートテーブルとBレポートテーブルがあり、その履歴みたいなものを管理するときに、それぞれのIDを持つとかぶることがあるからなーというときに使えそう。なんかアンチパターンっぽい気もするが。 シノニム 昔よくシノニム作ってたなー。 あまりなんで使っていたのか覚えてない…