ツナカン(TUNA-JP Conference) #12 で発表した資料です
特に重要なのがPresentational Componentは原則状態を持たず、データの受け取り元がPropsに限定されている点で、このルールが守られることでPresentational Componentの責務が小さくなり、この後紹介するメリットに繋がります。 メリット Container/Presentationalパターンのメリットとして大きく分けて下記の3つが挙げられます。 Componentの責務が明確になる ロジックはContainer Component、UIはPresentational Componentといった形で責務がはっきりしているので、どこで何を実装しているのかがわかりやすくなります。 そのためUIの微調整をしたいという場合にはPresentational Componentのみを改修すれば良いですし、UIはそのままでロジックだけ変更したいという場合にはCont
Next.js App Routerは巷では難しいと評されることが多々あります。これはReactの新機能であるServer ComponentsをはじめとするServer 1stとも言えるパラダイムシフトを必要とすること、そして初見殺しなデフォルトのキャッシュ挙動に起因していると筆者は考えています。 パラダイムシフトが必要となるServer ComponentsやServer ActionsなどのReactの新機能については、エラーで指摘・修正のヒントが提示されるなどの初学者のフォローもしっかり考慮した設計がなされてたり、多くのドキュメントや記事が公開されているので、これらについてはhooksが登場した時のようにあとは世の中に理解が広まるまでの時間の問題なのかなとも感じています。 一方でキャッシュについては、デフォルトで積極的かつ何層にも分けてキャッシュされる上、「意図せずキャッシュされて
Local LLMs: You can make use local LLMs such as Llama3 and Mixtral using Ollama. Two Main Modes: Copilot Mode: (In development) Boosts search by generating different queries to find more relevant internet sources. Like normal search instead of just using the context by SearxNG, it visits the top matches and tries to find relevant sources to the user's query directly from the page. Normal Mode: Pro
ドワンゴのN予備校という教育サービスでプログラミング講師をしている @sifue といいます。N高等学校/S高等学校のプログラミング講師もしており、学内のツール開発や運用などもしたりしています。 最近は生成AIが流行ったこともあって、Pythonだったり、UIが必要なものはどうしてもTypeScriptとReactで実装することも多いのですが、久しぶりにScalaを使っての開発をしてみました。 自身は、Scalaでの開発はニコニコ生放送のサービスを開発するときに使っていた他、N予備校内で提供している大規模Webアプリの教材やドワンゴが当初作成していたScalaテキストの作成などにも関わらせてもらいました。 その当時のScalaは2.12であったわけなのですが、その後2.13が出て、さらに今はScala3系になって3.3.1までバージョンが進み、開発環境が変わってすごく使い勝手がよくなったと
結論 お手軽モノリスならAutoIncrementが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はLUIDを作る必要があるよ。GUIDで大は小を兼ねよう 主キーでGUIDを使うならULIDよりもUUIDv7がおすすめだよ ただし分散されているエンジンによってはUUIDv4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ UUIDv7やULIDはユニーク性を持ったInstant(timestamp)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう RDBのPrimary Key(主キー)とは? MySQL、PostgresQLなどのRDBでは各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd
ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメインの例とF#のコードで、ビジネスに焦点を当てた、柔軟で高品質なソフトウェアを構築する方法を紹介します。たとえば、F#の型システムを使って複雑なドメインをモデル化し、読みやすいドキュメントにもなるコードを作成します。また、ビジネスルールをエンコードして「コンパイル時ユニットテスト」を作成することで、不正な状態を表現できないようにして潜在的なバグを排除します。関数型プログラミングの核となる原則を適用することで、実世界の要求をエレガントかつ簡潔にモデル化したソフトウェア設計を実現できます。 ドメイン駆動設計と関数型プログラミングを組み合わせることで、顧客満足度の向上、開発サイクルの短縮、無駄な作業の削減を実現できます。本書では、ビジネスドメイン
こんにちは。スクラムマスターの@sakebookです。 今回は「象・死んだ魚・嘔吐」をチームでやってみたのでその振り返りをします。 「象・死んだ魚・嘔吐」とは 振り返り手法の一つです。Airbnb Story 大胆なアイデアを生み、困難を乗り越え、超人気サービスをつくる方法(原題: The Airbnb Story)の中で紹介されていたようです。 翻訳されてなかなかキャッチーなネーミングになっています。 それぞれ次のようなことを意味します。 象 凄く大きい、見えているけど、みんな見ないふりをしている課題・問題。表層化しているけど大きすぎてみようとしていない。これが何かをみんなで話していく。 死んだ魚 放っておくと腐っていく。そういう問題。放置しておくとまずいことになる問題ってなんだろう?ということを話し合う。 嘔吐 自分の胸の中に隠していて、吐き出せなかったこと。これをこの場で嘔吐する。
本稿は当初チーム開発時のメンバー向けにまとめたものです。 ある程度、端折っていた背景などを記載しました。 git初心者同士でのチーム開発において、git操作を詳しく知らないメンバーも含め安全に行う必要がありました。しかし、開発期間はごくわずか...この状況を回避するために、下記の対応をとりました。 Gitコマンドの基礎的な内容を理解する(私) 各種操作をGUI上で完結させる拡張機能を色々と導入する シンプルな開発フロー(Github flow)を採用し、コマンド実行に相当する操作を限定する 各操作をGUI上での操作に置き換え、チームメンバーに教える 本稿はその際の、コマンドやGUI操作に関するメモをまとめたものになります。 こういった取り組みのおかげか、チームの開発をすんなりフローに乗せることができました。 ■ 前提条件 対象とする動き Github flowを回すうえで、 cloneする
株式会社サイバーエージェント AI事業本部 2024年度エンジニア新卒研修 オブザーバビリティ研修実践編(一部社内向けの内容)
全文検索エンジンも、事前に検索対象のデータを調べてこのような索引を作っておくことで、高速な検索を実現しています。 インターネット検索の例 たとえばインターネット検索の場合、まず各サイトからデータを収集して、その中から索引に載せる単語を選んで索引を作ります。索引のデータは下の図の右側のような表になっています。各単語と、それがどのサイトのどこにあったのかを記録しておく形です。 検索の時は、この索引データを調べます。例えば利用者が「理解」という言葉で検索したら、索引の「理解」のところを調べます。そうすると「サイトAの8文字目と18文字目、サイトGの……」と出現場所がわかるので、すぐに結果を返せます。 なお、この図では索引の単語の並び方が適当ですが、実際には本と同じように「あいうえお順」などに並べておいて、すぐに単語を見つけられるようにしてあります。 索引にない単語 この仕組みの場合、索引にある単
自分が気をつけていることに「今この状況を説明して」って言われた時に2分くらいにポイントを絞って話せるように常時準備しておく、というのが有って、これができるとだいぶ印象が違います 仕事で報告を求める人が最優先で知りたいのは「ヤバいか、ヤバくないか、アクションするのは俺か、お前か」です— magnoliak🍧 (@magnolia_k_) 2024年3月3日 繰り返し言ってるけど、状況報告、報告を受ける側が知りたいのは尽きるところ「ヤバいか、ヤバくないか」「それで次に行動するのはオレかお前か」というところです— magnoliak🍧 (@magnolia_k_) 2024年4月11日 振り返ると定期的に同じことを書いているんですけど、「報告を受ける側」が期待することって、「ヤバいか、ヤバくないか」「それで次に行動するのはオレかお前か」を素早く判断して、行動に起こすための情報が欲しいわけです
How to build accessibility semantics into web patterns and widgets ARIA Authoring Practices Guide (APG) Home Learn to use the accessibility semantics defined by the Accessible Rich Internet Application (ARIA) specification to create accessible web experiences. This guide describes how to apply accessibility semantics to common design patterns and widgets. It provides design patterns and functional
Modern web development is fantastic. There are so many great tools available! Modern web development is exhausting. There are so many great tools available! Each of these sentiments is true. What’s great is that most of the time, it’s hard to make a choice that is wrong. Seriously. The trade-offs of most of the frameworks and tools you could use to build your application fit within the constraints
どうもお疲れ様です。MESIです。 皆さん技術書は読んでますか? 私は技術書が好きです。読むのも好きだし買うのも好きです。 先月は技術書を30冊ほど買っていることが判明し今月の支払いに震えております。 今は技術書が大好きで毎日のように読んでいる私ですが、昔は読み方がわからず少し読んで放置するを繰り返しておりました。 本記事では私が犯した技術書の読み方の誤りについて紹介します。 私のような技術書を買っても積読してしまう方にとって参考になれば幸いです。 頭から順番に読み、目次を見ない 一般的な本の読み方が身についていると、本を頭から順番に読んでいこうとしてしまいます。 しかし、技術書でその読み方は合わないと私は考えます。 とにかく最初に見るべきは目次! まず目次を見て読む場所を決める。 目次を見て大体内容がわかりそうな部分は後回しにして、自分が理解してなさそうな部分から読みます。 技術書は小説
こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属している製薬企業向けプラットフォームチームのPlay製プロダクトのPlay/Scalaバージョンアップのお話です。当初Play2.8にバージョンアップしていたのですが、その最中にPlay2.9/Play3.0やScala LTSが出たりもしました。最終的にPlay3.0/Scala3.3にバージョンアップできて本番稼働できたサービスもあるので、そのバージョンアップの経緯をご紹介します。 Play2.8への道のり Play3.0へのバージョンアップ ハマり1:依存ライブラリがPlay2系に依存している ハマり2:ScalikeJDBCの依存関係 ハマり3:サーバーバックエンドの変更 ハマり4:sttpのバックエンドの変更 ハマり5:if式が値を返さない まとめ We are hiring !!
Google I/O で、昨年の I/O での発表以降、ベースラインがどのように進化しているかについてニュースを共有しました。ウェブ プラットフォーム ダッシュボード、RUM Archive との統合、RUMvision との今後の統合についても発表しました。この投稿では、講演で取り上げたすべてのリソースを 1 か所にまとめます。 ウェブ プラットフォーム ダッシュボードは、ウェブ プラットフォーム全体と個々の機能の相互運用性の過程を確認するための新しい方法です。これにより、ベースラインに含まれるようになります。詳細については、ウェブ プラットフォーム ダッシュボードの発表をご覧ください。 Baseline を日常的に使用するツールと統合することは、このプロジェクトのビジョンの一つでした。Google は、ユーザーがブラウザの互換性への対応について、あまり時間をかけて考える必要がないように
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く