サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
blog.okashoi.net
2/16(日)に Object Oriented Conference 2020 に行ってきました。 募集は随分前でしたが、ずっと楽しみにしていたカンファレンスでした。 ooc.dev 聴講セッション keynote: Object-Oriented Diversity DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか Chatworkのドメインをモデリングした VOYAGE GROUP流開発文化 READYFORにおける複雑なドメインとレガシーシステムとの戦い方 数理的システム設計-ビジネスと技術制約を繋ぐ手法- 概念投影によるオブジェクト指向設計の考え方とその方法 「モジュールとしてのマイクロサービス」と「分割単位としてのドメイン」について考える オブジェクト指向プログラミングの現在・過去・未来 感想など 聴講セッション 聞きながらのメモ等はツイートに返信してい
2019 年を振り返りながらダラダラと書いていたら、2 月に入ってしまいました。 2018 年の振り返りはこちら*1。 blog.okashoi.net 仕事について 仕事以外でのエンジニアとして プライベート 2020 年の抱負 仕事について 人としての在り方について 仕事について 技術広報の立ち上げやスペシャリスト育成など、「組織をどうするか」という類の活動が増えてコーディングする時間は圧倒的に減りました。 技術的なチャレンジに満ちた 2018 年とは対称的であったと言えます。 その状況下で強く意識していたのは意図的に「目立つ役割」を演じる、ということでした。 これには以下の狙いがありました。 社内に対して目立つことで、エンジニア(特に新卒入社)のモチベーションを喚起する 社外に対して目立つことで、ウィルゲートのことをエンジニアに知ってもらう 社外での活動は言わずもがな、社内で表彰さ
昨日、10/23(水)に開催された Sansan Builders Box 2019 に参加してきました。 jp.corp-sansan.com 私が聞いた発表のスライド・実況ツイート・感想 オープニング Sansanアーキテクチャ史 Eightのフロントエンド〜改善の歴史と今後の展望〜 GCP サーバーレスサービス × 少数チームで新たなデータ化サービスを立ち上げる 新規事業の開発メンバーが1人→n人に増えるのを支えた技術 DSOCのR&Dを支える、名刺データ分析基盤の構築とこれから ニュース配信における自然言語処理の取り組み クロージング イベント運営面で良いと思ったこと サイレントセッション 椅子 Slido を使った質疑応答 おやつ 全体の感想 Appendix: 私が聞かなかった発表のスライド Eight iOSを支えるアーキテクチャ Vol. 2 Sansan iOS アプリの
試験に向けてやったこと 試験の手ごたえなど 受験した感想 この試験です。ベータ試験ですが合格者はきちんと本認定されます。 peatix.com 友人との間で話題になり、勢いで申し込んだのがきっかけでした。 ちなみに開始してすぐ(1 時間程度)に枠が埋まるほど人気だったそうです。 早くも完売となりました。早々のお申込みありがとうございました https://t.co/82lgOsbv6y— 徳丸 浩 (@ockeghem) July 10, 2019 試験に向けてやったこと 申し込んだのが 7 月 10 日で、試験日は 8 月 4 日なので対策期間は 1 ヶ月弱。 一緒に申し込んだ友人たちと、集まって勉強する時間を意識的に作りました。 勉強内容はひたすら出題範囲とされている本(徳丸本)を読む。それだけ。 『体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策
どうせ生きているのならば、自分の選んだ道(選択肢)には自信を持ちたい、と思っています。 そう言うと「この道を選んで良かった!」と胸を張って言える状態を指すように思うかもしれません。 もちろんそれもひとつの形ではあるのですが、私はそれ以上に「自分の選ばなかった道を祝福できる」ようにありたいと思うようになりました。 人生は選択の連続であり、「A」という選択を取ることは同時に「B」という選択を捨てることを意味します。 自分とは違う「B」を選んだ道を行く人が、そこでしか得られない幸せを得ているのを目にしたときに、 「B」で得られる幸せはまやかしだ 「B」で成功したのはたまたま運が良かっただけ、本当は良くない のようにその人や道を呪うのではなく、その幸せを心から祝福できるようにありたい。 そして、その上で「だけど、私は私自身の意思で『A』を選んだのだから」と、なおも胸を張って自分の道を進んでいく。そ
6月29日(土)に開催された PHP カンファレンス福岡 2019 に参加してきました。 phpcon.fukuoka.jp 前夜祭と After Hack 含めた 3 日間、福岡に滞在しました。 会場の福岡ファッションビル 開会式前の会場の様子 今は、カンファレンスのプラチナスポンサー、株式会社 Fusic さんで行われている「After Hack」でこのブログを書いています。 fusic.connpass.com PHP カンファレンス福岡 2019 の様子・感想など 登壇「Laravel でやってみるクリーンアーキテクチャ」 おわりに PHP カンファレンス福岡 2019 の様子・感想など どのセッションも面白く、いろいろな方と議論ができた楽しいカンファレンスでした。 心なしか、はたまた地域の特性か、参加者温度感も高かったように感じます。 twitter.com 今回、東京以外で開催
この記事について 「Willgate Advent Calendar 2018」25 日目の記事です。 また、この記事の続きになります。 blog.okashoi.net 「バグる余地が無いように『考えて』作る」ことについて 前の記事では「人間の注意力には限界があるんだからバグらないように『気をつける』んじゃなくて、バグる余地が無いように『考えて』作ろうぜ」という旨の内容を書き、一方で最近になってこの考え方について思うところがある、と締めくくりました。 確かに自分のコードを書いている分にはそれである程度うまくいっていたのです。 しかしチーム全体のコードに目を向けるようになったところで問題が生じました。 チームでも極力バグる余地が無いようなコードを書いていくために、良いコードについての考え方をチームメンバーに伝えたり、設計・実装方針を定めてドキュメント化したり、という方法を取りました。 する
この記事について 「Willgate Advent Calendar 2018」11 日目の記事です。 記事が投稿された日付は気にしてはいけない。いいね? きっかけ およそ 2 ヶ月前に下書きになっていた記事があったので掘り返し。 この記事を書き始めたころの twitter のタイムラインにこんなツイートが流れてきました。 エンバグを断罪するような思考そもそも気に入らない。個人の注意力に依存するのは工学的じゃない。罪はバグが発生しやすい設計にあると考えるのがエンジニアじゃないの? って思う。個々のバグに対して迷惑被ったと怒るのはエンドユーザー視点しかない人だと思う— 田中ひさてる (@tanakahisateru) 2018年10月2日 私もこれに近い考えをずっと抱いてきていたので、引用リツイート + コメントせずにはいられませんでした。 本当にこれ。 バグらないように「気をつけて」作るん
この記事について 「Laravel Advent Calendar 2018」19日目の記事。 前提 レイヤードアーキテクチャを適用している次のようなディレクトリ構成を想定する。 説明したいことにフォーカスするため Value Object などは省略している。 app/ |-- Providers/ | `-- RepositoryServiceProvider.php |-- Domain/ | |-- User.php | `-- UserRepository.php `-- Infrastructure/ `-- Eloquents/ `- User.php Domain レイヤーには User の Entity が定義されている。 <?php namespace App\Domain; class User { protected $id; protected $userName
この記事について 「YYPHP Advent Calendar 2018」14日目の記事。 はじめに 本当は「Repository パターンを使う 2 つのメリット(Laravel における実装例)」というタイトルで記事を書こうとしていた。 記事を書くにあたって Repository パターンの定義を DDD 本(エリック・エヴァンスのドメイン駆動設計)に確認しにいったら私の理解が間違っていたらしいことに気づいた。 そこで今回は、急遽記事の趣旨を変えて「私はどのように理解を間違えていたのか」を書くことにした*1。 ただし、今の解釈も正しいか自信がないので、もし間違っていたらツッコみをいただけるととても嬉しい。 これまで私がやっていたこと 前提として、次のような Entity を考えるとする。 User - id - name - profile image profile image はユ
1ヶ月ほど前に書いた、下書きのままになっていた記事があったのを見つけたので投稿。 たまには具体的な技術の話ではなく、ややポエム寄りの話を。 きっかけ 友人から次の記事を共有され読んだ。 yulii.github.io 全体の内容には至極合意なのだが、次の一文が引っかかった。 無責任なコミットを抑止するため「コード」は共有しても「責任」は共有すべきではないと思います ここでいう「責任」とは何だろうか? この一文は「『コードに不具合があったとき、レビュアーも見逃したんだから責任があるよね?』っていうのは無しね」という意図であるという理解はできる。 では、不具合があった場合に「責任」のある人(この場合コードを書いた人)はどうなるのだろうか? たぶん「責任」は具体的なものではなく「自覚」のようなもの 文脈を見るに「責任」のある人を非難しよう、という話ではないだろう。 かと言って、不具合のあるコード
関連エントリ 今回、一緒に参加したチーム「Oysters1」メンバーのブログエントリーはこちら。 blog.zoe.tools ↑戦略・戦術などはこちらで詳しく解説している。 blog.pinkumohikan.com ちなみに とどけ / Revert "とどけ" したのは私だ。 作業中の風景(実は別撮り) ISUCON とは 詳しい解説は公式 Blog に譲るが、ISUCON とは「Iikanjini Speed Up (=いい感じにスピードアップ) Contest」の略。 与えられた web アプリケーションを(レギュレーションの範囲内で)とにかく速くしたもの勝ち、というコンテストである。 isucon.net 実は昨年も予選に参加しており、今回は 2 回目の参加だった。 (今さら気づいたが、昨年予選に参加した際のブログ書いてなかったのか。。。) 自分の役割とやったこと 私は以下の
背景 SPA (Single Page Application)を作るにあたって、サーバサイドは純粋に JSON API だけを提供するということもある。 これを Laravel で実現する際の構成について考え・検証したものを GitHub にあげた。 github.com この記事ではその内容を(ほぼ)コミット単位で解説していく。 リポジトリについて もともと docker-compose を使って Laravel の開発環境を手軽に作るためのものとして作ったリポジトリである。 今回は、そのリポジトリから skelton-api というブランチを切って検証を行った。 リポジトリルート直下にある .env.example をコピーして .env ファイルを作成・編集して任意の値をセットしたのち、 make setup を叩くことでローカルで動作させることができる。 Laravel で実装し
2017 年度は個人的に大きな変動のあった年なので、振り返り記事を書こう書こうと思い続けて 2 ヶ月以上が経過してしまった。 が、そういえば社内の LT 会で振り返りを発表する機会があったなーと思い至り、そのスライドを引用してまとめに代える。 2017 年度の振り返りは大きく分けて 習得した技術 アウトプット 仕事の質 の3つの軸があり、このスライドは2つめの「アウトプット」にあたる。(のこり2つもいつか記事にする) 2017 年度を振り返って ~アウトプット編~ from Shohei Okada www.slideshare.net 他のメンバーにアウトプットを促すことを目的にやった内容で「積極的な挑戦をお待ちしています!!」とあるのはそのため。 一応、このブログ以外のアウトプット内容を以下に示す。 会社のブログ 自分の役割上、下記のようなイベント系の記事が多め。 tech.willg
プライベートで開発しているプロダクト用の技術調査。 とりあえず簡単に、受け取ったメッセージをそのまま返すサーバを実装した。 github.com docker-compose up して client/index.html をブラウザで開くと、開発者コンソールから「Message from server echo {"msg":"hello world!"}」の出力が確認できる。 Golang の実装部分は下記の Qiita 記事をそのまま参考にしたので、解説はそちらを参照のこと。 Go 言語で Websocket を使ったアプリケーションをつくる 余談 *-test ってリポジトリ名がなんだか微妙な感じがした。 practice とか、 training とかがいいのかな? 2018-06-09 追記 あまりよく確認していなかったが trevex/golem は長らく更新のないプロジェク
一昨日の4/25開催された Laravel/Vue.js 勉強会に参加してきた。 laravue.connpass.com Laravel/Vue.js 勉強会は第1回に登壇枠で参加させていただいたこともある。 blog.okashoi.net 以下、参加しながら取ったメモ。 [登壇枠1] Laravel と Nuxt.js を業務で取り入れる際に得た知見 LaravelとNuxt.jsを業務で取り入れる際に得た知見 from ssuserb6dacf www.slideshare.net 株式会社 IT プロパートナーズ 戎島さん @isao_x /森山さん @frostndays プロジェクト概要 toC の 大規模 SNS のようなもの Nuxt.js → SSRモード/SPAモードが選べる ogpタグの懸念から SSR モード 認証方法 APIでやる Laravel Passpor
この記事にて blog.okashoi.net Google Analytics や Search Console の設定を変えないといけない気がするので、そのあたりでやったことをまとめようと思う。 と書いたので、まとめた。 Search Console 新しくウェブサイトを登録する Search Console トップの「プロパティを追加」から「ウェブサイト」を追加。 ※2018/03/27 現在、新しい Search Console の画面からのプロパティ追加はできない 所有権の確認は 「別の方法」 > 「ドメイン名プロバイダ」 から「ドメインレジストラまたはプロバイダ」を選択し、指示通りにDNSの設定を行う。 ※ 「別の方法」 > 「HTMLタグ」 では、後述のアドレス変更ツール利用の際に新旧サイト同時確認ができないので注意 アドレス変更ツール 変更前のウェブサイト(~.hatena
ぞえ(zoe302)氏が設定した、というのを受けて私も続いて。 blog.zoe.tools やったことは記事そのままなので、ここでは手順の解説はしない。 とりあえず報告まで。 このあと Google Analytics や Search Console の設定を変えないといけない気がするので、そのあたりでやったことをまとめようと思う。 あと、最近更新が滞っていたのと3月も終わるので年度ふりかえりコンテンツでも。
このエントリーの続き。 blog.okashoi.net このエントリーを書いた後早々に「Laravel のドキュメントを全部読め」という旨のツッコミを頂いた。 そして、Laravel の機能でやりたいことが実現できることを学んだ。 laravel.com 日本語訳はこちら→ 認可 5.4 Laravel ということで、当初は続きのエントリーとして「それぞれの方法のメリット・デメリットの比較」を書こうと思っていたのだが、公式の方法がどちらの方法にも勝るので単に Laravel の認可の機能について説明をする。 実現したいこと 前回のエントリーの内容では説明のためには不充分なので、より具体的な例を挙げる。 前回のエントリーで示した条件(再掲) 前提:Laravel 5.4 で開発している web システム ユーザごとに「このデータは編集できる」「このデータは閲覧のみ可」といった権限管理をした
Vue.js #4 Advent Calendar 2017 - Qiita の 19 日目のエントリー。 (先日の記事の続きを書こうと思っていたが、こちらの日が先に来てしまった) 最近、フロントエンドエンジニア・デザイナー不在のプライベートな開発において、フロントサイドの実装を任されることがあった。 その際に Vuetify.js を用いて比較的簡単にマテリアルデザインのページを実現できたので、その備忘録。 (意見・ツッコミなどは歓迎) vuetifyjs.com 出来上がった画面のイメージはこんな感じ。 ※グラフ描画は Vuetify.js で提供していないので、 vue-chartjs を利用している。 このレベルであれば、Vue.js の基礎知識だけある状態から1日で辿り着くことが出来た。 概要 Vuetify.js はマテリアルデザインのコンポーネントを80種類以上提供している。
追記:2018/01/27 続きのエントリ。 Laravel が提供している機能で実現できることが分かったので、結論だけ知りたい人はこちらを読めば OK。 blog.okashoi.net -- 追記ここまで -- 背景 業務において、同じチームのメンバーがプルリクエストを WIP で出し「こんな方法でいいか?」という旨の相談を投げかけてきた。 それについて議論になったことがあるので、それについて書いておく。 そのときの論点は大きく分けては 2 つあったのだが、今回はその 1 つについて書く。 もう 1 つは気が向いたときに書くかもしれない。 ※以下はあくまで私個人の意見であり、「こうすべき」と言っているのではないことに留意。意見・ツッコミ等は歓迎。 実現したいこと 前提:Laravel 5.4 で開発している web システム ユーザごとに「このデータは編集できる」「このデータは閲覧のみ
jawsohenro.doorkeeper.jp これまで AWS はほとんど触ったことないし、愛媛松山に特に縁があるわけでもないのだが、友人に誘われたのをきっかけにノリと勢いで愛媛まで足を運んだ。 何気にこれで四国初上陸だったりする。 「クラウドでつながり、今を、明日を変えていく」というテーマのもと、AWS に限定せず「クラウド×地方」が取り上げられていた。 参加者は全部で 170 名ほど。 聴講したセッションのメモ 基調講演:武闘派はコミュニティに生きる。 フジテックのCIO、友岡さんによる3つのお話。 メモ 「コミュニティの活動等になぜ参加したら良いか?」を理論武装する 弱いつながりの強さ 交流頻度が少なく多様性があるのでブリッジが生まれやすい コミュニティ、SNS アイデアを創出するのに必要 c.f. 強いつながり 「タバコ部屋」の世界 組織として実行するために必要 遠いところと弱
9月は業務が忙しかったのでブログの更新が滞っていた(言い訳)ので、久々の更新。 昨日 10月8日、大田区産業プラザ Pio で開催された PHP カンファレンス 2017 に参加してきた。 スピーカーのみなさんがスライド自体分かりやすくまとめてくださっているのと、他の方が詳細をまとめていたりするので、私は私なりの感想やまとめをつらつらと書くだけ。 phpcon.php.gr.jp 聴講したセッション(と所感) OpenID Connectを通じてWebアプリケーション技術とPHPによる実装を学ぼう www.youtube.com (スライドがすぐに見つからなかったので動画を貼った) ユーザ認証 + 属性情報取得のためのプロトコルである OpenID Connect について。 認証・認可のレイヤーの処理について、結構あやふやなので順を追った具体的な解説が聞けてよかった。 OpenID Co
仲間内でやっている勉強会の一環で、ISUCON の過去問に挑戦した。 今回は ISUCON 3 のオンライン予選問題。 公式で AMI が提供されている。 isucon.net github.com 今回のルールは下記の通り 個人戦 立ち上げる AWS EC2 インスタンスは m3.xlarge, ストレージは 8GB マグネティック 競技時間は 6 時間 マシンを再起動後にベンチマークを3回実行し、その最高スコアを結果とする(※) 上記以外は公式のレギュレーションに則る ※ PHP 実装でベンチマークを回すと再現性無く FAIL が発生したため、平均ではなく最高スコアとした 私の最終的なスコアは下記の通り。 Result: SUCCESS RawScore: 3772.6 Fails: 6 Score: 3433.1 ISUCON3 予選突破ラインが約 10000 とのことなのでまだまだ
connpass.com 会社のつながりで「Laravel/Vue.js 勉強会を開催するので誰か登壇しませんか?」という話が挙がったので真っ先に手を挙げて挑戦してみた。 テーマは「Laravel Mix とは何なのか?」。 Laravel Mix とは何なのか? - Laravel/Vue 勉強会 #1 from Shohei Okada Vue.js に興味を持ったきっかけが「Laravel が公式採用した」という話だったが、そういえばその実体をよく把握していなかったなあ、と思ったのがこのテーマを選んだ理由である。 振り返り 発表者4名中、私以外の他3名がサービスでの採用事例だったのに対して、私は知識というか概念の説明だった。 かなり初歩的な内容だったのも併せて、聞いていた人に価値が提供できたのかは少し自信がない。 また、最後のデモで失敗しグダグダになってしまったのは大きな失敗だった。
2年目、3年目と時が経つにつれて、他人が書いたコード見てコメントをする機会は増えていく。 このときに(主にコーディングに関する)自分の考え方を言語化して他人に伝える、というのはとても骨が折れる作業だ。 そこで、これまでに他人にしてきたコメントを思い返しつつ「普段どんなことを考えながらコーディングしているか」「プルリクを見るときにどんなところを見ているか」という観点を整理してみた。 もちろんただ文字に起こしただけでは伝わらない。 何度も繰り返し改善案のコードとセットにして伝える、という積み重ねの先に観点・感覚が身につくはずだと信じている。 ※この記事では主に「バグが発生しにくいこと」「バグが発生しても原因を特定しやすいこと」を目的としている。 ※具体的なコード例を載せると長くなるので割愛。文字での説明のみ。わかりにくいのは承知の上。 目次 目次 名付けについて 引数について 戻り値について
少し前になるが、Vue.js に関する勉強会の講師というものをやってみた。 そのときに使用した資料がこちら。 github.com 私自身フロント側のプログラムなんて全然触ってきていないし、Vue.js についても個人的に数日触っただけだが、 触ってみたときにはかなりの感動があったし、私と同じレベル感で Vue.js(あるいはJSフレームワーク)に興味はあるけど触る機会を得られていない人も結構いるのではないかと思ってこのテーマを選んだ。 心がけたこと 準備をするにあたって以下の3点を意識した。 実際に手を動かしてもらう内容にすること どの環境でもすぐに動かせること 参加者の期待値を調整しておくこと 実際に手を動かしてもらう内容にすること 普段勉強会に参加していて思うのは、話を聞くだけでは「わかった気になる」だけで何も身にもつかないよなぁ、ということ。 もちろん優秀な人というのは得た知識につ
背景 以前にブログだけ作ってしばらく放置していたが、友人との会話の中で「資産としてブログを書いていくことは大切だなー」と思ったので今日からはじめる。 やったこと 最初の一歩として、このブログをはじめるにあたりやったことをまとめる。 名前を決める まず「okashoiの日記」というデフォルト名前を今の「s平面の左側」という名前に変えた。 名前を決める際には、いくつかの友人のアドバイスがあって 覚えやすい(インパクトのある) しっくりする略語にできる ユニーク(他には無い) というところから考えて、高専時代の専攻である制御工学のネタから名前をつけた。 「s平面」って言葉はまず聞かないのでインパクトありそう(+ネタが分かる人にはニヤリとできる?) 略語はあまり考えてない 多分ユニーク でも、制御工学系の記事は書かないので悪しからず。 基本設定 ブログアイコン about ページ 編集モード を設
このページを最初にブックマークしてみませんか?
『blog.okashoi.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く