タグ

ブックマーク / laiso.hatenablog.com (14)

  • インポート文を削れ - laiso

    『ソフトウェアアーキテクチャ・ハードパーツ ―分散アーキテクチャのためのトレードオフ分析』では、開発者がIDEの自動インポート機能を安易に使うことで、モジュール性の低いコードが生成されるというアンチパターンが紹介されています。 たとえば、Javaや.NETの開発環境でコーディングをする場合、開発者がまだインポートされていないクラスを参照すると、IDEはすぐに開発者に参照を自動インポートするかどうかをダイアログを通して尋ねてくる。それがあまりにも頻繁に起きるため、ほとんどのプログラマーは反射的に自動インポートのダイアログを押してしまう癖がついている。 1.5.1 適応度関数の使用 「俺じゃん・・・」と思いつつもしかし、私はこのインポートが無意識に積み重なっていく状況を、逆転の発想でリファクタリングに活用しています。*1 具体的な手順: なんか書いてるコードがごちゃってることを感知する インポ

    インポート文を削れ - laiso
    yojik
    yojik 2024/09/03
  • データベース中心の設計になってしまう問題と闘う - laiso

    『手を動かしてわかるクリーンアーキテクチャ 』の第二章の冒頭に登場する話題に共感したので紹介。 従来の多層アーキテクチャでは、データベースを中心にアプリケーションの 開発が行なわれます。この場合、Web 層はドメイン層に依存し、ドメイン層は 永続化層、つまり、データベースに依存することになります。そうなると、す べてのものは永続化層上に構築されることになり、その結果、いくつかの要因 が絡まり合って、問題が起きやすくなります。 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 20p 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 作者:Tom Hombergs,須田 智之インプレスAmazon 著者によれば、機能開発をデータベース中心に設計すると、ドメイン層と永続化層の密結合が

    データベース中心の設計になってしまう問題と闘う - laiso
    yojik
    yojik 2024/08/11
    いわゆる業務システムの、その主目的の一つは「日々のビジネスの活動を矛盾なく正確に記録する」だから、ちゃんとモデリングされたDB設計ならDB中心設計には合理性はある。まあケースバイケースではあるけど。
  • インターネットの人の終わり: pha『パーティーが終わって、中年が始まる』 - laiso

    phaさん(id:pha)が新刊を出したのをたまたま観測したので読んだ。 パーティーが終わって、中年が始まる (幻冬舎単行) 作者:pha幻冬舎Amazon 個人的には2013年の最初のニートの歩き方』以来だったので10年分のphaさん情報を一気に知れてよかった。僕の認識している最後のphaさんは確か練馬のシェアハウスで相変わらず熊野寮にいる大学生のような生活をしていたと思うが、10年もあればあれから色々あってザ・ノンフィクションに出たりバンドを始めたりして四十代の中年にもなって流石の最強ニートもクライシスの最中にある、というのがこののテーマのようだ。 phaさんとは旧知の仲であるがあまり接点はない。会ったことが数えるぐらいしかないのだけどなぜか会話量に対して関係性が深く、恩人のようなポジションにいる。葬式とかあったら行けたら行くレベル 当ブログの以下の過去記事に練馬のシェアハウス

    インターネットの人の終わり: pha『パーティーが終わって、中年が始まる』 - laiso
    yojik
    yojik 2024/06/06
    “ただphaさんは若い頃からかなりのエリートダウナーだったからスタート地点もかなり低いと思う。”
  • ライティングの哲学と未来のエディタの話 - laiso

    『ライティングの哲学 書けない悩みのための執筆論』を読んだ。 書はWorkflowyを使いこなしている文筆家をTwitterで募ってそれぞれの活用法を紹介する座談会を4名で開催したら、文章執筆についての精神性の話題がメインになってしまい、それはそうと3年後に参加者に実際に原稿書かせてみて再度Zoomで座談会して1冊のにしてみた。という変わった企画だった。 ライティングの哲学 書けない悩みのための執筆論 (星海社 e-SHINSHO) 作者:千葉雅也,山内朋樹,読書猿,瀬下翔太講談社Amazon あとがき、が一番この全体で起っていることを体裁立てて書いてあるので先に読むと分かりやすい。 僕は各人の著書をあまり読み込んだことがないので、実際の執筆の変化は分からないのですけど、3年後座談会では概ねみんな「雑に書いて世に生み出せた時点でえらい」というような方向性でまとまっており、自分と同意見

    ライティングの哲学と未来のエディタの話 - laiso
    yojik
    yojik 2023/12/12
  • 2022年の技術トピックをふりかえる - laiso

    それはベンツなんよ 総括 今年はコードをよく読むようにした。 技術的にはひき続きPaaSやクロスプラットフォームの動向に注目した。 デファクトの移り変わりを感じるので来年以降はGoGraphQLに手を出していきたい。 去年のエントリ: 2021年に作ったモノや技術をふりかえる 今年やったこと コード読み 去年はコードを書くことに注力していたので今年は一転コードを読んでいた。 プログラム雑談ポッドキャストを聞いていて「コード読み」っていう言葉がよく出てくるので聞きながらそういえば自分もこの分野が好きだなと思い出したので意識してやることにした。 丁度、最新技術のトレンドだけ俯瞰しているのに学びを感じなくなってきたのでより潜りたい気持ちがあったのでそれを満せたと思う。 IntelliJ IDEAで全言語のプログラミング環境が楽に揃っているのが心強い(Samuraismさんありがとう)。 読んだ

    2022年の技術トピックをふりかえる - laiso
    yojik
    yojik 2023/06/26
  • GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? - laiso

    と思ってやってみたら結構実現できてウケたので解説します。 はじめに 最近のGPT(LLMs)アプリケーション開発界隈は「プロンプトの内容を試行錯誤して結果を期待する」フェーズから「LLMsの特性を生かした今までできなかった自動化を実現」という段階が訪れつつあって楽しい時期です。 LlamaIndexというOSSではDBのスキーマと自然言語からSQLを自動生成してその場で実行するというクレイジーな機能があるのですが(A Guide to LlamaIndex + Structured Dataを参照) これと同じ発想でソースコード全体からpatch(patch - Wikipedia)を生成してその場で適用するというアイデアを思いついたのでしばらく検証していました。 「コミットメッセージを先に書いてそれを満すコミットをGPTに生成してもらう」ようなイメージ。 書いたコードはpmonというコマ

    GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? - laiso
    yojik
    yojik 2023/04/10
  • 最近のDHH「サーバーレスをやめろ」 - laiso

    (インターネットやめろジェネレーターで作成) Ruby on Rails生みの親であり最強の逆張りおじさんであるところのDHHが昨年あたりからしきりに脱パプリッククラウドの主張をしている。 これは彼らの会社が運用しているBasecampやHEYのインフラをAWSから自社保有のベアメタルサーバーへ移行しようとしているからで、実際に移行作業は進んでおり、今後5年間で700万ドルのサーバー費用を節約できるだろうという見込みがあるようだ。 world.hey.com world.hey.com あとタイトルに「サーバーレスをやめろ」と書いたけどDHHのファンボである筆者の誇張表現であり、サーバーレスというキーワードに関しての言及は正確には以下のポストを読んで欲しい。 world.hey.com この文章における「the computing cycles」とは、一台のコンピュータが持つ計算能力全体を

    最近のDHH「サーバーレスをやめろ」 - laiso
    yojik
    yojik 2023/03/02
    開発ビルドテストはクラウド、本番実行環境はオンプレみたいなのが自分が携わるような規模のSI案件(社内システム中心)ではちょうどいいかなと思っているんだけど諸事情でそうはならない。。
  • 日本行った - laiso

    2019年夏に出国したらそのまま帰られなくなってて実に3年ぶりに一時帰国した。 コロナカ 9月7日以降は入国時の陰性証明が不要になっていてスムーズだった、検査や自宅待機期間とか送迎必須とかもなかった。 到着時の入国は日人ばかりだった。逆にバンコク到着時は国外から到着した旅行者が多かった。あとTM6が廃止されていて面倒くさいのが減っててよかった。 関係ないけど一部界隈で「陰性証明は作れる」と話題になっていた。 dot.asahi.com レストラン 一時帰国は1日外出録ハンチョウと聞いて質的だと思った— laiso (@laiso) 2022年9月14日 諸説あるけど刺身とアルコールとジャンクフードの調達コストがやたらと低いと思った。主に寿司をべた。 公共の場でアルコールキメてふらふらになっている人(怖い)がいるアシッド感を外国人旅行者の気分で見ることができた。 円安 https://

    日本行った - laiso
    yojik
    yojik 2022/09/27
  • 死後強まるサイト - laiso

    個人開発のコストはDB次第 この記事を見てびっくりした。まずビックリしたのは「DBお金を払えばいいのでは?」という点。 OSSへの寄付の月予算を$10にした にあるようにソフトウェアに費用をかける意思はあるのになぜプライベートの開発にコストをかけたくないのか。 記事の反応を見て気が付いたのだけど、僕は何故かサーバーレスアーキテクチャの採用を前提としていて、ここにヒントがあった。 最初はサーバー管理に関心がないのかもと思っていたのだけどパソコンとしてLinuxを使うのは結構好きだし、VPSもいくつか契約している。 これは何故なんだろうと考えていたのだけどブログのリセット でも触れたように「死後に放置されたサイトになる」ことを考えているんだろうという結論になった。 ノーメンテナンスでなるべく生き続けて欲しい。思い出してみると独自ドメインを避けるとか宣伝しないなどもその動機の為であった。 現実

    死後強まるサイト - laiso
    yojik
    yojik 2022/07/20
  • Tauri on mobile 現状確認会 - laiso

    tauri.app Tauri とは Electron代替として作られたRust製のGUIアプリケーション開発ツールキット。 ユーザーは各プラットフォームのWebViewで動くHTML+JavaScriptUI開発をして、裏側はRustで書いたネイティブバイナリにコンパイルされるプログラムを呼び出す。 実際の実装のイメージが以下で、Electronに使い方は似せられている。 tauri.app Electronは特製ChromiumとNode.jsをユーザーのアプリケーションに同梱することでポータビリティを担保させているのに対して(find /Applications -name "Electron Framework.framework" コマンドを実行してみると大抵どんな環境にもElectronが10匹ぐらい居る) TauriはOSが用意しているWebViewにリンクして、スクリプト

    Tauri on mobile 現状確認会 - laiso
    yojik
    yojik 2022/06/17
  • Airbnb’s Server-Driven UI System(Ghost Platform) の感想 - laiso

    Airbnb’s Server-Driven UI System(Ghost Platform) とは何か Airbnbが社内で取り組んでいる最新UI開発システム Ghost Platformとそのコンセプトの名前 元Airbnb AndroidエンジニアRyan Brooksによるポストを参照 A Deep Dive into Airbnb’s Server-Driven UI System | by Ryan Brooks | The Airbnb Tech Blog | Medium A Deep Dive into Airbnb’s Server-Driven UI System どういうものか サーバー(API)からデータと画面構造(UI)を配信して各プラットフォームで再生する仕組み UI言語部分を抽象化したもの Web、iOS、Androidに対応する なぜ画面構造を配信するの

    Airbnb’s Server-Driven UI System(Ghost Platform) の感想 - laiso
    yojik
    yojik 2021/09/21
  • Hotwireの感想 - laiso

    Hotwire https://hotwire.dev/ Turboを中心としたウェブアプリケーションのアーキテクチャの要素技術やコンセプトをPRするための名称 Hotwireというライブラリがあるわけではない 役割としてはMicro FrontendsとかReactのlearn once, write anywhereなどに似ている アプリケーション実装言語非依存だけど現状Railsアプリケーションしか実用できる基盤がない Hotwireの思想 アプリケーション開発者の生産性を上げることを目的にしていること サーバーサイド言語でフロントエンドを実装したいアレではなかった プログレッシブ(段階的に利用可能)であること 必要な技術だけを使い無駄なことをしないことで効率化する Hotwireが列挙する技術は1つづつ有効にできる クライアントサイドでViewを差分更新する現在の主流のシングルペー

    Hotwireの感想 - laiso
    yojik
    yojik 2021/01/25
  • 個人開発者とCovid-19 Radarプロジェクト - laiso

    Endless road | During our roadtrip we turned off the highway… https://www.flickr.com/photos/98063470@N00/326044514 GitHubリポジトリ Covid19Radar に対して起ったことがかなり特殊な状況だったため、開発を追い掛けていた視線からレポートをします。 この記事の著者について 代表作のない個人アプリ開発者(かなしい) Covid-19 Radar Japan の人ではない GAFAMやCode for Japan の人でもない 4/8 Covid-19 Radarを発見する Covid-19 Radarとは、この時点ではシンガポールのTraceTogetherの日版を目指した個人開発者 廣瀬一海さんのアプリのリポジトリ 4月にContact Tracing技術について

    個人開発者とCovid-19 Radarプロジェクト - laiso
    yojik
    yojik 2020/06/22
    これ想像以上に厳しいな。。
  • Cloud FunctionsをGoで書く。またはFirebaseのためのマイクロサービスアーキテクチャ - laiso

    Firebase Advent Calendar 2019 の17日目です。16日目はKesin11さんの「Firebase Emulator Suiteをフル活用してTDDで開発しよう」でした。 はじめに FirebaseプロジェクトでCloud Firestoreを利用する時は通常Node.jsによるCloud Functionsでトリガーとなる処理を記述します。その他には関連するAPIサーバー、WebアプリのフロントエンドのSSR、バックエンドの非同期処理など、多くの場面でCloud Functionsが活用されています。 この開発→デプロイサイクルをお手軽に行ってくれるのがfirebase-toolsというnpmモジュールです。JavaScriptでFunctionを実装し、firebase deployコマンドを実行するだけでFirebaseプロジェクト用のCloud Funct

    Cloud FunctionsをGoで書く。またはFirebaseのためのマイクロサービスアーキテクチャ - laiso
    yojik
    yojik 2019/12/17
  • 1