タオルケット体操

サツバツいんたーねっとでゲームとかガジェットのレビューとかをします

プログラミング

型はみんなの心の中に存在しているんじゃない?

はじめに まずインターネットのお気持ち記事で「型がある」とか「型がない」とか言い始めたら、書き手がどういった意図でそのような言葉を選んだのか警戒しなければならない。 全部を語るとそれだけで5記事分くらいの分量になりそう*1なので割愛するが、世間…

実はDDDってしっくりこないんです

DDD失敗パターン集 DDDという方法論それ自体に対する僕の立場はあんま好きじゃない寄りのフラット(といいつつほぼ忘れかけている)なんですが、過去何度もDDDでプロジェクトが爆死するのをみたり、爆破してしまったり……というのを見てきたので供養したいと…

GoogleのTypeScript Style Guideについてのお気持ちスタンダード

なんか話題になってて、なんかおみこしwasshoiする流れになってたのでお気持ちを書き残したくなった。 先に結論 こういうのを作って公開するのは誉れある組織 ですが 内容的にはfor TypeScriptというよりはfor ES nextといった感じで、特に型周りに関する言…

NestJSちょびっとだけ触ってみた所感

ここ数年まともにサーバーサイドをやっていないなぁとかおもいつつなんやかんやあってNestJSを数日ほど触ったりドキュメントを読んだりしてたので初心を忘れないようにメモ。 いちおうTypeORMだけは出始めにちょっと使ってた。 理解度が高まったら気分が変わ…

Flutterでスケールするアプリ設計 Store編

hachibeechan.hateblo.jp 前回の続き そういえば、前回の記事のブコメで Behavior = TransactionScript? 実践CQRS という感じの元ネタばらし鋭い指摘をしてくれた方がいました。 90%方その通りなのですが、実装の平易さ、許容できるパターンの広さを優先する…

駆け出しプログラマーが効率よく成長するために必要なたった一つの習慣

動いたところで満足して終わりにしない はい。 書き上がったあとに何をするべきか あなたにチケットが割り振られているとする。 駆け出しの貴方にとってはどれも初めて実装するような機能ばかり、あれこれ試行錯誤してようやく動くようになったッッ……!!と…

Flutterでそこそこ規模の大きいプロダクションアプリを作ったのでスケールする設計についてまとめる

あわせて読みたい FlutterでBLoCだChangeNotifierと振り回されて消耗するまえに - タオルケット体操 筆者のFlutterに対する印象は半年前にこのエントリーを書いたときから驚くほどに何も変わっていないので、逆にFlutterは非常に明快でわかりやすいライブラ…

FlutterのRoutingを型安全に扱いたい!!

標準Routerのつらみ Flutter標準のRouterの仕組みと書き方はだいたいこんな感じです。 flutter.dev はい。つらいですね。 具体的にいうと 定義が単純な Map<String, WidgetBuilder> なので補完が効かない なのでタイポで全てが終わる なので後からrouterのkeyを変更するのが大変 引</string,>…

FlutterでBLoCだChangeNotifierと振り回されて消耗するまえに

追記 providerとかfreezedの作者が作ってる state_notifier が当エントリとほぼほぼ同じことをやっているので依存が増えることを気にしない人はそっち使ってもいいんじゃないかとおもいます。 みんなの心はひとつでした。 まえがき 先のエントリ BLoCにおけ…

BLoCにおけるリモートデータの状態遷移のパターンをくくりだす方法

Dart否定して終わりだとあもりにあわれ。 おれにこれしかなんだ! だから、これがいちばんいいんだ!というわけで現実と戦う方法を模索。 元ネタ: https://elmprogramming.com/remote-data.html ちなみにBLoCはすでにオワコン化しつつあるようなので新規で…

Flutter所感

諸事情によりしばらくFlutterでアプリ作って感じたことをいくつか。 良いところ 1. ちゃんと動く みなさんも今までに出ては消えていくiOS, Android両方で動くアプリ作れるよ系ソリューションで色々なお気持ちを発生させてきたかとおもいますが、Flutterの出…

TypeScriptで関数型プログラミングしたい勢に推したいPipeline operatorの良さ

前置き Rubyで一瞬だけ湧いて出てきて消えたPipeline風演算子については忘れてください。あれはメソッド呼び出しの演算子であって今回取り上げるPipeline operatorとは似て非なるものです。 JavaScripterでも、Ramda.jsやRxJSを普段から使っている人には既知…

TypeScriptで既存の関数の引数と返り値の型情報をコピーする方法

TypeScriptにはType infer in ConditionalTypeという便利機能があり、それを利用すると既存の型定義から柔軟に特定の方を取り出すことができます。 そして利用頻度が高そうなものについては組み込みの型定義がいくつか存在します。 関数の型定義から引数を取…

ReactにおけるBreadcrumb(パンくず)実装のパターン

もちろんケースバイケースなんだけど、パンくずリストというのは全体のレイアウトに属していながらマウントされる要素に従属して中身が変わるという点でちょっと厄介。 具体的にどういうケースで厄介かというと、ヘッダやサイドバーなどをまとめたpage layou…

You are gonna obviously need itの法則

YAGNIの原則 YAGNIの法則はご存知ですか。 You Ain’t Gonna Need It. の略で、アジャイルとかでよく言われる「いらんもん作るな」の原則ですね。 「これいるやろー」で前もって作りこまれた機能は10%しか使われないし時間の無駄だよね(10%の根拠はあるんか…

フロントエンドエンジニアをやっていくために本当に必要な技能

「俺はフロント開発者じゃない、ただフロントが得意で書く機会が多いだけなんだ」といいながら日々ジャバScriptの中でもがいています。 採用の面談に顔を出したりする機会ができてきたのでここら辺で一度言語化しておきたい。 勘なんですが、たぶん心の強さ…

React HooksとTypeScriptを使ったRedux再実装で理解度を深める試み しましょう

React Hooksでましたね。 これでクラスを使う必要がなくなってみんなハッピーです(公式で再三書かれてますが、既存のコードをHooksで書き直す必要性はないです)。 それはそうとして、useReducer という新しい仲間が増えました。 ちょっと前に追加されたCon…

「プログラミング教育が難しい」いくつかの要因

最近の波には乗り遅れたけど、これは定期的に議論が発生するトピックスな割にあまり整理して話してるものが見当たらないので僕なりの観点からまとめる。 なおこの記事では 学校教育 未経験者を雇う企業の新人研修 社員の平均レベルをあげたいイケイケ企業 な…

TypeScriptのモジュールをnpmで公開する方法

はい。わたしです。 こちらは 2018年の株式会社LOB Advent Calendar になります。 前回書いた 書いたコードはチャンスさえあればパッケージに切り出して公開すべき という記事はお気持ちしか書いてないポエムだったので、じゃあ実際どうやればいいんだよって…

書いたコードはチャンスさえあればパッケージに切り出して公開すべき

どうもTypeScriptおにいさんです。 こちらはLOB Advent Calendar 2018年の記事です。 前回はmojibakeo氏による TypeScript + React で i18n (国際化/多言語) 対応を楽して続けるためのアレコレ でした。 i18nには多くの苦しみがありますが、ECMAScriptはAST…

TypeScriptを導入する前に『覚悟』したほうが良いこと 4項目

補足:2021年6月 結構昔に書いた記事ですが、今でもたまにアクセスがある(ありがとうございます)ようなので使命感に駆られて追記。 本編の冒頭にもあるように、これは2018年の記事です。なので色々と書いてますが、2021年の人間の立場からTypeScriptの導入…

今後必要になる言語や大統一言語や学習効率についてのあれこれ

今後必要になる言語はお前がどういうキャリアパスを辿りたいかによって変わる。以上。 場所によってはCもCOBOLもまだ現役だし、パチンコの制御基板はアセンブラだ(確か)。そもそもPythonだってそろそろ30年選手の言語なわけだ。その影で消えていった言語は…

新しいフレームワークとかを習得するときのちょっとしたコツ

コツは、なぜそのフレームワークが作られたのかについて触れることです。 だいたいはREADMEの一番頭とか、あるいは本人やコミッターのブログになんかに作者の思想とか、フレームワークのコンセプトについて書いてあります。 それらを読んだりしていると「な…

脱MacBookしようとしてnew XPS 13 2018年モデルにLinuxをいれてみたけどちょっと後悔してるよ

Linuxはオープンソースなので政治的にも正しいし、自分で改造すれば理論上は無限大の可能性があり、とにかくすごいです。 Macは使うととにかく宗教になってしまい信者だから全部ダメだし、オープンソースじゃないから自由じゃないです。みんながLinuxを使え…

Windowsを開発環境化する試みのWork In Progress日記

なぜWindows MacBook高すぎ問題、macOSの劣化ぶりがヤバい問題、革ジャンGeforce GPU使いたくなったらどうすんだよ問題。 そして去年一年はLinuxを使って開発しており、iOS開発でもやらない限りは全くもって何の問題もないことがわかったのだけれども、ラッ…

GitHub時代のボトルネックとの解決策について (WEB+DB vol.102のペアプロ/モブプロ特集を読んで)

前回書いたコードレビューに関する記事の続きです。 色々なブコメがついていましたが、僕が感じてたもやもやに共感するようなコメントが結構あったのでちょっと安心しました。ひとりじゃなかったんや……! さて、そのブコメのひとつで筆者の一人であるt_wada…

そろそろコードレビューそのものの必要性について考えるときがきているのかもしれない

技術ブログの方に書くか迷ったのですが、かなりポエムの類な文章になりそうなのでこちらに書きます。 ちょっと前にバズったこちらの記事 medium.com に触発されました。 ちなみにコードレビューに関する話としてはまだ僕が色々と手探りだった3年前にもこんな…

プログラマーは業務時間外でも勉強すべきかどうかについて

そんなことを考える暇があればスプラトゥーン2やろ マジレスすると 「プライベートでもプログラミングするくらい好き/ではない」 「業務時間外であっても勉強すべきだと考えている/いない」 「優秀なプログラマーである」 は相関があるようでそれぞれ個別の…

試行錯誤を経てMacからLinuxへの移行が完了した

ここしばらく、Macのいいところが薄れ、初期不良やOSの不安定さなど悪い点が目立つようになっているからなのかなのか、あるいはMacBookのパクリにとどまらないラップトップが増えつつあるからなのか、徐々にMacをやめてLinuxへと移行するプログラマーが出て…

共通化という考え方はアンチパターンを生み出すだけ説

共通化を指針にするのはおすすめできない 「共通化」というワードはプログラマーであれば誰しもが一度は聞いたことがあるだろう。そしてもうひとつ、それと対称であるかのように語られるのが「コピペは悪」だ。 ここで僕が異議を唱えたいのは共通化を善とす…