note.com 僕の間違いじゃなければ、時々はてなのブログでコメントを頂いた方のように思う。Python関係で。大変お世話になりました! 法人の設立にあたっての事務処理と、会社運営のお気持ち編を、自分の体験からまとめてみます。2016年6月にノリ(そうだ独立しよう)だけで起業して7年ほどひとり。今は2人体制になった。 会社を大きくする方法はなんもわからんので、そういう内容を期待される方はすいません!沿わないと思う! 1. 決算処理は専門家に任せたほうが良い 自分は前職の会計事務所でお世話になったため、起業当初から会計事務所を利用させてもらっている。年間30万弱。決算処理込み。 6月1日に創業したけど、タイミング的に6月になっただけで、深い意味はなかった。会計事務所的に3末はGW進行と重なるので避けたほうがいいかも。 決算処理は確認しないといけない事項が多すぎて、素人がいくら確認しても漏れ
もう30手前になるんだけど、就職関係の話を見るたびに俺の選択はどうだったんだろうと思うから書き下す。 結論から言うと、「不正に関してはダメ元でも声を上げよう」 「建設業は業界の体質がダメ」 「専攻じゃない業界に転職しても何とかなるよ」 以下自分語りなので飛ばして頂いて結構。ガキの頃から建築が好きで、通学路に新築の一軒家が建とうとしている現場があれば眺めていたり 当時は劇的ビフォーアフターが流行っていたのもあって小学生の頃から「一級建築士になる」 ことを将来の夢にしていた。ちょうど、中学の頃に叔母が新築を建てる際に建築家の先生に依頼することになり 仕事の様子をよく見せてもらっていた。また施工中の現場もよく見に行っていた。 この段階では将来はこの仕事をして飯を食うことになんの疑問も抱いていなかった。 まず、一級建築士を取るためにはその前の二級建築士を取らないといけないため、高専の建築科を卒業す
公開日 2024/05/27更新日 2024/05/27注目のITサービスを支えるアーキテクチャ特集 技術選定のポイントと今後の展望 現代のITサービスは、ユーザーに高品質で安定した体験を提供するために、より効率的で柔軟な技術選定が不可欠です。 本特集では、注目企業のシステムアーキテクチャ設計に携わるエンジニアの方々より、それぞれの技術選定における工夫と、未来を見据えた展望についてご寄稿いただいています。 各企業がどのように課題を乗り越え、開発生産性や品質を向上させるためにどのようなアプローチを採用しているのか ー この記事を通じて、実際の現場で活用される最先端の技術や戦略を学び、皆さんのプロジェクトに役立つ洞察を得ていただければ幸いです。 ※ご紹介はサービス名のアルファベット順となっております airCloset - 株式会社エアークローゼット エアークローゼットは日本初・国内最大級、女
切り替える理由 自社の主力製品で利用している技術(WebRTC / WebTransport)がブラウザベースのため TypeScript を利用する Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い コネクションプールは PgBouncer を利用すればいい TypeScript からは 1 コネクション 1 接続で問題無い どうせフロントエンドでは TypeScript を書く 自社では React
こんにちは!サイオステクノロジーの安藤 浩です。DB設計書の生成が容易にできるDBMLをご紹介します。DBMLの入門として、DBMLの書き方、ER図生成方法、Github actionsでCIを実行して閲覧する方法をご紹介させていただきます。 DBMLとは DBML は DataBase Markup Language の略でDB構造を定義するために設計された言語です。 DB構造に焦点を当てており、可読性の高い言語です。 dbdiagram.io や dbdocs.io などを利用することでDBドキュメントの生成が可能です。 コードベースで図を生成できる点でPlantUMLと似ていますね。 DBMLの書き方 テーブルの書き方 まずはテーブルの定義の例をもとにDBMLの記法を紹介していきます。users というテーブルを作成してみます。コードは以下のようになります。 Table users
はじめに 最近書いてるソフトウェア設計シリーズです。今回は例外に関して。以前、以下のような記事を書いたのですが、もう少し深堀して書いてみました。 ちなみにソフトウェア設計シリーズは他には以下を書いています。 モジュールになぜ分けるのか? モジュール、依存、そしてカプセル化 モジュールをどう分割するのか? 簡潔さは力なり? 予測可能な振る舞いと簡潔さについて ドキュメントとしてのコメント TL;DR 例外は「原則」キャッチしない 業務例外や必ずハンドリングさせたい例外はOptionalなど戻り値の方が便利 だいたい以下の図が言いたい事のすべて 例外処理とは? 「例外処理(Exception Handling)」は言語に依らず普遍的な関心事です。端的に言えば例外処理は異常やシステムの動作に不備が発生した際の特別な分岐処理です。リカバリやリソースの解放、あるいはユーザへの通知などがありますね。
はじめに 株式会社ファースト・オートメーションCTOの田中(しろくま)です! 先日、 OpenAIからGPT-4oがリリース されました。 いろいろGPT-4oに関して調べていると、スピードが速くなっていたり、音声も直接扱えてマルチモーダル化が進んでいたりするようなのですが、画像に関して GPT-4-turboに比べ、認識やOCRの精度が向上している ようです。 製造業という観点からすると、これは 設計図面などに活かせるようになるのでは? と思いました。 機械部品などの設計図面は以下のように、特定の方向から部品を2次元上に落とし込んだ形で書かれるのですが、部品本体を描いている図以外に、寸法や名称といった文字も含まれた画像になっています。 このような 図と文字の複合データにおいて、GPT-4oの進化は有効なのではないか と考えました。 ※画像元URL: http://cad.wp.xdoma
tl;dr はじめに 2024 年の 4 月 24 日に Node.js 22 がリリースされました。ESM を 条件付きで require する機能や、--run フラグによる npm スクリプトのパフォーマンス改善などが v22 で追加され、2009 年に Ryan Dahl が Node.js をリリースしてから 15 年が経つ今も、Node.js は進化を続けています[1]。 こうして Node.js 自身が強化されていくにつれ、以前はサードパーティーのパッケージを使用して実現することが一般的であった機能が Node.js のみで実現可能となり、当該パッケージが不要となるような場合があります。冒頭に引用した Ben Holmes の動画では、そのように不要となったパッケージとして dotenv node-fetch chalk mocha が挙げられていますが、この記事では「これら
Feature-Sliced Designというフロントエンドアーキテクチャ設計方法論をプロジェクトに導入してみたところ、 個人的には良いと感じているので、どのような設計方法論なのか、具体的にどのような部分が良いと感じたかを紹介していきたいと思います。 Feature-Sliced Designとは? Feature-Sliced Designは、フロントエンドアプリケーションを対象としたアーキテクチャ設計方法論です。公式サイトでは、「コードを整理するためのルールと規約の集大成」と記載されています。 Feature-Sliced Designの設計方法論 Feature-Sliced Designでは、プロジェクトはLayerで構成され、各LayerはSliceで構成され、各SliceはSegmentで構成されます。 Layer Feature-Sliced Designの第一階層をLay
「HTML,CSSだって難しいよ!」 初心者でも始めやすいって言ったの誰ですかね。最初は覚えるのに必死だし、少しわかるようになったかな?で始めたサイト制作(コーティング)もエラーだらけで頭を抱える日々。そんな修行を耐えているみなさんに知ってほしい、CSSの設計についてお話できたらなと思います。概念的なこと中心になりますので細かいことは下記の参考文書をご覧ください。 『インプレス社 Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 谷拓樹著 2022年発行第1版』 注意 作者自身もプログラミング初めて1ヶ月の超初心者です。HTML、CSSを使ってデザインカンプを元にサイトを作れるぐらいのレベルです。なので僕より歴長い人はスルーしてもらっていいです。まだ初めたばかりの人は追いついてきてください。僕は先に行ってます。 初め 壊れない完璧な設計を
株式会社バーチャルキャスト CTO MIRO/岩城 進之介 1972年生まれ。東京都出身。複数の企業において、映像制作やオーサリングツール、PDA端末の内蔵ブラウザなど、多岐な開発に携わる。個人としては2000年代に「携帯動画変換君」の開発などで注目を集める。2011年に株式会社ドワンゴに入社。360度LED画面を擁した没入型映像ライブ施設「ニコファーレ」でのネット連動演出システムや、ARライブシステムの開発など、AR、VR、放送技術、イベント演出のシステム開発を手掛ける。2018年、3Dアバターの共通フォーマット「VRM」を設計・提唱。同年、バーチャルキャストの立ち上げに携わり、CTOに就任。2023年、POPOPO株式会社を設立。 X ブログ「MobileHackerz」 バーチャルキャスト公式サイト VRMコンソーシアム POPOPO株式会社 かつて、「携帯動画変換君」というフリーウ
結論 お手軽モノリスならAutoIncrementが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はLUIDを作る必要があるよ。GUIDで大は小を兼ねよう 主キーでGUIDを使うならULIDよりもUUIDv7がおすすめだよ ただし分散されているエンジンによってはUUIDv4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ UUIDv7やULIDはユニーク性を持ったInstant(timestamp)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう RDBのPrimary Key(主キー)とは? MySQL、PostgresQLなどのRDBでは各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd
本稿は「アーキテクチャを突き詰める Online Conference」における発表「なぜDependency Injectionなのか? ~関心の分離と疎結合~」の登壇原稿となります。 発表時の動画アーカイブは後日公開されたタイミングでリンクを追加いたします。 また、本稿のサンプルコードとPower PointはGitHubで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 https://github.com/nuitsjp/WhyDependencyInjection というわけで、本稿の目指すゴールはこちら。 今日は、この場にいる皆さんが「なぜDependency Injectionを利用するのか?」ということを、理解いただくのが本日のゴールとなります。 というわけで本
開発サイクルの終盤に近づくと「今回は優先順位の高いここまでを実装して、残りは優先順位が低いのでまたの機会にしましょう」という話になりがちだ。自分もこれまで何度もそうしてきたし、その場の判断としては正しい。が、このやり方に味をしめて常にこの調子で進めて、なんとなく上手く仕事をこなしている気になってしまうことには危機感がある。 以下、普段考えていることを自戒を込めてメモしておく。(なお、筆者の経験は toB ・Web 系・自社開発が中心なので読者の置かれている状況とは一致しないかもしれない) 優先度が低いタスクに着手する機会が一生訪れない 仮にあるタスクの優先度を下げたとする。バックログを眺めるとそのタスクに着手できそうなのは3ヶ月後だ。そして3ヶ月後、やっとそのタスクに着手できるかというと、そんなことは決してない。3ヶ月の間にそれよりも優先度の高いタスクが積まれているからだ。タスクを消化する
ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメインの例とF#のコードで、ビジネスに焦点を当てた、柔軟で高品質なソフトウェアを構築する方法を紹介します。たとえば、F#の型システムを使って複雑なドメインをモデル化し、読みやすいドキュメントにもなるコードを作成します。また、ビジネスルールをエンコードして「コンパイル時ユニットテスト」を作成することで、不正な状態を表現できないようにして潜在的なバグを排除します。関数型プログラミングの核となる原則を適用することで、実世界の要求をエレガントかつ簡潔にモデル化したソフトウェア設計を実現できます。 ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメイン
CQRSとは CQRS(Command Query Responsibility Segregation、コマンド・クエリ責務分離)は、ソフトウェアアーキテクチャパターンの一つで、つまりシステムのコマンド部分をクエリ部分から分離します。基本的な考え方は、データの書き込み操作(コマンド)と読み取り操作(クエリ)を異なるモデルで扱うことです。これにより、スケーラビリティ/パフォーマンス/セキュリティの観点で柔軟な設計が可能となり、クエリ要件に合わせて最適化が実現できます。 CQRSの基本構成としては、 コマンドモデル(書き込みモデル):データの作成、更新、削除といった書き込み操作を担当します。このモデルは、データの整合性と一貫性を確保するために最適化されています。 クエリモデル(読み取りモデル):データの読み取り操作を担当します。このモデルは、クエリのパフォーマンスを最大化するために最適化され
以前、シフトレフトのために静的テスト、動的テストの2つのアプローチからどんなアクションを取れるかを記事にしました。 上記記事で書いたように、以前までのwith QAチームではテスト設計以降の作業を重視せざるをえず、上流工程でのテスト活動を明文化できていませんでした。しかし、メンバーの増強とユニット制への体制移行により、より上流工程から積極的にQAが関わっていけるようになりました。 その中でQAとして何ができるとよいのかを考えた結果、より積極的にテスト活動が行えるようテストプロセスを詳細化することにしました。具体的にはwith QAチームでは新たにレビューとテスト分析をテストプロセスとして明示することになりました。1 今回は、このレビューとテスト分析を中心に、実際に何が変わったのかを書いていきます。 前提の確認 本題に入る前に、レビューとテスト分析とは何かという確認から行います。 「レビュー
目次 概要 この記事の内容 対象読者 注意事項 前提知識 定義 用途 モデリング 不変性 独立性 汎用情報 個別の情報 Versioning 実装 前提 フレームワーク Domain Eventの処理 型定義 interface DomainEventEnvelope Enum Domain Eventの内部通知 staticなEvent Publisherを用意してAggregateがPublisherを呼び出す 実装例 AggregateのCommandの返り値としてDomain Eventを返す 実装例 Aggregateで保持してGetterで取り出す 実装例 永続化と外部通知 要件 永続化 外部通知 まとめ 参考文献 概要 この記事の内容 Domain Eventは非常にシンプルな概念かつ強力なモデリングパターンです。 モデリングにおいては直感的に扱うことが可能ですが、実装をする
コードなしでWeb3コンテンツなどを開発することができるプラットフォーム・thirdwebの創設者であるadammaj氏が、「経験なしで2週間でゼロからGPUを構築した」と報告しています。 I've spent the past ~2 weeks building a GPU from scratch with no prior experience. It was way harder than I expected. Progress tracker in thread (coolest stuff at the end)👇 pic.twitter.com/VDJHnaIheb— adammaj (@MajmudarAdam) ◆ステップ1:GPUアーキテクチャの基礎を学ぶ adammaj氏はまず、最新のGPUがアーキテクチャレベルでどのように機能しているのかを理解しようとしたそうで
こんにちは!Xイノベーション本部プロダクトイノベーションセンターの米久保 剛です。 弊社のテックブログ上では今回が初めての記事執筆となります。アーキテクチャ設計やアプリケーション設計の話を中心に、不定期に情報発信していきたいと考えています。 YAGNI原則 YAGNI原則をご存知でしょうか。 エクストリーム・プログラミング(XP)の重要な原則の一つであるこの原則は、You Ain't Gonna Need Itのアクロニム(頭字語)から命名されています。日本語にすると「どうせ要らないって」というニュアンスでしょうか。推測に基づいて余計な機能を作り込んだところで将来実際に使われる可能性は低く、時間と労力を無駄にするばかりかコードの複雑化などのリスクさえあります。ですから、現時点でわかっている要件をちょうど満たすだけの機能を実装すべきであるとYAGNI原則は主張します。 YAGNI原則は機能(
TL;DR: Instead of redirecting API calls from HTTP to HTTPS, make the failure visible. Either disable the HTTP interface altogether, or return a clear HTTP error response and revoke API keys sent over the unencrypted connection. Unfortunately, many well-known API providers don't currently do so. Updated 2024-05-24: Added the Google Bug Hunter Team response to the report that the VirusTotal API resp
はじめに お久しぶりです。iselegantです。 今日は技術書典#16向けに執筆した「The Cloud Run」本の紹介をさせてください。 今回のテーマは「Google Cloud」です! 特に、コンテナサービスとして代表的な「Cloud Run」のアーキテクチャ設計をテーマに執筆しました。 techbookfest.org これまで、「クラウドネイティブシリーズ」と称して3冊執筆してきましたが、その第4弾の位置付けになります。 いつもであれば、わりとゆるくかわいい感じの表紙でしたが、今回は「ちょっと本気でCloud Runに向きあって、読者のみなさまに価値を届けようか」とのコンセプトなので、本気度を表現するためにシリアスな表紙を作成いただきました。 今回の書籍のコンセプト 僕たちが今回の書籍を執筆する際、2つのコンセプトを大切にしています。 実務に通用する学びを届ける とにかく楽しく
はじめにこんにちは、PIVOTでソフトウェアエンジニアをしている裾分です。PIVOTは2024年2月にアプリ・Webを本格始動しました。私はPIVOTにジョインして以降、サブスクリプション機能の開発をしてきたので設計の概要と決済プラットフォームが係る実装の難しさについてまとめてみました。 本題冒頭のリリースの通り、PIVOTはYouTubeからプロダクトに集中するにあたり、サブスクリプション機能をリリースしています。 サブスクリプションを実装するにあたり考慮すべき点として、以下の状態を考慮する必要があります。 自サービスで管理する状態 ユーザーのサブスクリプション ユーザーのプラン 他サービスで管理する状態 ユーザーへの課金を行うプラットフォームに登録されているサブスクリプションの状態 決済状態(成功 | 失敗 | …) PIVOTの場合では、決済プラットフォームとして App Store
React Aria Components は Adobe によって提供されている Headless UI コンポーネントライブラリです。振る舞いや国際化に, アクセシビリティに関する機能を備えており、Button や Input, TextField, Label などのシンプルな要素から、DatePicker や ComboBox などの様々なコンポーネントが提供されています。 今回は React Aria Components の設計について紹介します。 React Aria Components のコンポーネントの設計 React Aria Components の API はコンポジションを中心に設計されています。これにより、パターン間で共通のコンポーネントを共有することも、個別に使用することも可能です。なお、コンポジションについては React Component Compos
あなたが一生懸命手を動かしているその仕事、本当にいま皆から期待されていることですか…? 「職務記述書にそう書かれているんだから間違いない」 「上司が賛成しているんだからそうでしょう」 …本当に? わたしたちが職務設計について学んだことTebiki株式会社 エンジニアリングマネージャーの三宅と申します。私たち Tebiki社は、製造や物流などの現場での技能伝承を支援する動画マニュアルプラットフォーム「tebiki」を開発・運営しており、現場教育を行うことのできる人材の不足という社会問題に取り組んでいます。 Tebiki社の開発組織は「マネージャーが指示するよりも、役割を担う人が責任を果たすために創造的に活動するほうがうまくいく」という考え方のもと、「公式に定義された責任とそれを果たすための十分な権限」で職務設計をしています。 これに関して、最近、実践の中で学んだことがありました。具体的には、
どうも、freee でエンジニアリングマネージャー をやっている sentokun です。 以前に私の所属しているチームで開発している権限管理基盤マイクロサービスの記事を書いたのですが、そういえば「権限制御ってなに?」という説明をしていないと思ったので、今回記事にしました。 権限制御とは? freee の権限管理基盤が行なっている権限制御とは?を一文でまとめると以下となります。 アクセス制御ポリシーを元に、ユーザーの属性に合わせた適切なアクセス制御を行うこと というわけで、この記事は権限制御について説明しました。ありがとうございました! … とはなりませんよね。ちゃんと一文の中の要素を分解してそれぞれ解説していきます。 ユーザーの属性 適切なアクセス制御 アクセス制御ポリシー ユーザー属性とは? freee ユーザーが持っている、様々な属性のことです。例えば以下が挙げられます。 管理者やメ
はじめに 本記事は、今年発売された書籍『データモデリングでドメインを駆動する――分散/疎結合な基幹系システムに向けて』を読んだ感想と、QAエンジニアである私*1が日々の業務で役立ちそう(既に役立った)部分を紹介します。今のところ、本書籍は2024年のベストバイな気がします。 gihyo.jp 本記事で一番伝えたいこと データモデリングについての考えが深まるぞ 開発者が読むともっと役立てることができると思うぞ QAエンジニアである私が読んでも役立つぞ 読み始めてすぐに「良い買い物だった」と思って思わずポストしている様子 目次 はじめに 本記事で一番伝えたいこと 目次 本書籍で良かったこと:データモデリングをするにあたっての整理と用語の提案がすごい SoAとSoMという整理 「残」という概念 データベース設計とは違う「データモデリング」という考え方 QAエンジニアとして、業務に役立てそうなこと
建築家・白井晟一設計の個人住宅「桂花の舎」が江之浦測候所に移築へ建築家・白井晟一が晩年に設計した個人住宅のひとつである「桂花の舎(けいかのいえ)」。これを小田原文化財団 江之浦測候所のある「甘橘山」に移築するプロジェクトが始まった。 桂花の舎 Photo by Yasushi Ichikawa 渋谷区立松濤美術館などの設計で知られる建築家・白井晟一が晩年に設計した個人住宅のひとつ「桂花の舎(けいかのいえ)」。これが杉本博司による小田原文化財団 江之浦測候所に移築される。 桂花の舎は、大和市・中央林間に建てられたもの。白井はこの家の完成を待たずに1983年に逝去したため、白井晟一研究所に引き継がれ、竣工した。施主は画家で、デザインや予算などに一切制限を設けないという条件で設計されており、随所に使われている栗材などにその痕跡が見られるという。この建築はその後、地区の宅地開発によって解体の危機に
データ基盤チームに所属しているデータエンジニアの吉田(id:syou6162)です。10X社内のデータマネジメントの仕事をしています。 最近、社内でディメンショナルモデリング勉強会を行なったですが、なぜ勉強会を行なったのか、どのように行なったのか、勉強会を行なった結果何が得られたかについてまとめます。 ディメンショナルモデリング勉強会開催の背景 勉強会の進め方やスコープ 勉強会の参加者 勉強会で学んだ内容 Four-Step Dimensional Design Process キーの設計について 複数スタースキーマを適切に利用し、ファントラップを避ける コンフォームドディメンション まとめ: 勉強会で得られたもの ディメンショナルモデリング勉強会開催の背景 前回のエントリにまとめた通り、10Xのデータマネジメントの課題の中でも「データウェアハウジングとビジネスインテリジェンス」は優先度が
このスライドでは、ドメイン駆動設計の手法を用いて、 モデリングで機能性を高め、 アーキテクチャと実装パターンで保守性を高める方法を紹介します。 ドメイン駆動設計のモデリング手法として、シンプルな4つの図でモデリングできる"sudoモデリング"の事例を紹介し、それをコードに落とし込むためにどのようなアーキテクチャが必要かを解説します。 # 関連資料 ドメイン駆動設計 サンプルコード&FAQ https://little-hands.booth.pm/items/3363104 今回の内容はこちらからの抜粋です。DDDに関して頻出の質問に、多くのサンプルコードを交えて回答した解説書です。 モデリング、集約の実装、テストについても具体例を交えて解説しています。 ## 実装方法に関しての解説動画 10分でわかるドメインモデルをコードに落とす方法 https://www.youtube.com/wa
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く