タグ

ブックマーク / mizchi.hatenablog.com (24)

  • 2020 年、 React 軸で学ぶべき技術 - mizchi's blog

    なぜ仮想 DOM という概念が俺達の魂を震えさせるのか - Qiita から 5 年経ち、 仮想 DOM を備えた React やそれを採用した Vue や他のライブラリも市民権を得たように思います。 有用な技術が市民権を得る、というのはエコシステムが花開くことでもあります。新しいプロダクトを作る際の技術選定において、 TypeScript + React が常に正解というわけではないですが、このスタックはかなり強力だという手応えがあります。 このスタックは得意のウェブフロントエンドは勿論、それ以外もとりあえず 80 点ぐらいの品質でプロトタイピングできる、というようなエコシステムになってきたような肌感があります。 モダンフロントエンドだと TypeScriptWebpack は採用しているのを前提として、記事では React を軸にその技術を活かすために、次の 6 個の技術を紹介

    2020 年、 React 軸で学ぶべき技術 - mizchi's blog
  • フリーランス完走した感想 - mizchi's blog

    2 年ほど走ってみました。 Qiita の Increments を退職します - mizchi's blog からの 転職活動 https://gist.github.com/mizchi/4e097923bb92399d03ced9da44f15cfa の結果 この記事は、自分の体験を書くことで、どういう人がフリーランスに向いてるか、というのをわかるように書いたつもりです。自分に近い属性ということで、ある程度プログラマとして経験を積んだ人向けです。 フリーランス辞める理由 フリーランスが嫌になったわけではないです。機会があればまたやりたいとも思っています。今回はフリーランスを続けるより良い選択肢があった、というだけの話です。 個人事業主を 2 年やって、消費税の徴収方式が変わるタイミングがあり、法人化してフリーランスの働き方を続けるか、個人事業主をやめるか、という 2 つの選択肢があり

    フリーランス完走した感想 - mizchi's blog
  • 「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog

    主にUI設計やプログラミングのAPI設計について、「わかりやすい」というのは主観的で合意が取れないのでクソという話。 定量的な指標が示されてない そもそも趣味が合わない場合はそこで終わり 〜の来意図された機能が隠れてしまっている ↑によって隠れてしまった機能を呼び出すのが、最終的にコストが掛かる 何が言いたいかと言うと、「指標の伴わない変更に意味はない」「APIの呼び方を変える程度のラッパーライブラリやヘルパーには、特に意味がない」ということです。 ここからプログラミングの話に絞りますが、特にショートハンドしたいだけの場合、ショートハンドするAPIの実装は、必ず来の機能を呼び出す脱出ハッチも必要となります。 よく練られていない「わかりやすさ」は、次第にこの脱出ハッチを使うことを要求するようになり、結果として捨てられることになります。この破棄までの過程は、結果的に「技術的負債」と表現され

    「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog
    ono_matope
    ono_matope 2018/11/08
    「使いやすいラッパ」というものは安易に作られがちで、得てして使いやすくならないと言う話
  • 二世の呪い - mizchi's blog

    僕はエンジニアで、このブログで書くことは、そういうテーマを期待されていることを知っている。それ以外はノイズだから、あんまりやらないでほしい、とも。 でもこれは自分のアイデンティティの根幹に関わることで、そういう前提で、一部で話題になってたこの動画を見た。幸福の科学の大川総裁の息子の、幸福の科学との断絶宣言。 www.youtube.com happy-science.jp エンタメの文脈でそれはどうなんだと思うところはあれど、内容自体は非常に思うところがあった。 8歳ぐらいまで、家の宗教に疑問を持つことはなかった。幼稚園までは、人に隠れて前の祈りを捧げていたと思う。それが褒められると知っていたから。 ティーンエージャーの頃、自分は怒りに支配されていた。自分の家の異常さを客観視できるようになり、その異常さを許せなくなった。自派以外を否定する排他的な教義、一時期採用された一夫多、そしてその

    二世の呪い - mizchi's blog
    ono_matope
    ono_matope 2018/10/08
    みずち氏、えらいなと思う。
  • フロントエンドの負債と向き合う - mizchi's blog

    某所で書いたものを公開用に書き直したもの 前提 フロントエンドでTDDは難しい、というかほぼ不可能である。なぜなら事前に副作用をデータとして表現できるか不明だからだ。たとえばあなたのプロダクトの画面の何処かにボタンを追加するために、その内部表現を事前に思い浮かべることが可能だろうか? react-redux などのFluxフレームワークは如何に副作用をアクションとして表現することで、テスト・デバッグのための情報を残すか、という視点で発展してきた側面がある。あの冗長なアクション定義は、全てデバッグのために書いていると言っても、過言ではない。それすら「Textは文字がある」といったトートロジーなデータになりがち。 フロントエンドの現実的な単体テストは、他の開発者のために、自分が書いたコードの要求を満たしているか検知する手段として、防衛的にテストアフターしておく。これぐらいしか現実的な手法がない

    フロントエンドの負債と向き合う - mizchi's blog
  • エンジニアのベンチャー企業の選び方/働き方/やめ方 - mizchi's blog

    この記事は退職者アドベントカレンダーの12日目です。 adventar.org 経歴としては、新卒で設立してすぐのゲーム会社 => 小規模教育系ベンチャー => Incements(Qiita) => フリーランス。 今年で29歳、20代で3回退職しました。20代のうちは冒険してベンチャー企業で働いてみよう、と思ってたのですが、結局29を目前にフリーランスになってしまいました。 ベンチャーで働くこと ベンチャーで働くのはリスクを取るということ。一番言いたいのは、ストックオプションもたずにベンチャーやるな、ストックオプションも確実に換金できるわけじゃない、ということ。上場するときに行使するか、バイアウト時に買い取ってもらわないといけません。 また、ストックオプションの期待だけ給与は下がるので、他の会社で同じことをやるのに比べて、 -100~-150万ぐらいの相場です。少数精鋭志向で最初からじ

    エンジニアのベンチャー企業の選び方/働き方/やめ方 - mizchi's blog
  • Qiita の Increments を退職します - mizchi's blog

    4月からフリーランス。直近半年の仕事は埋まってるけど、パイプ作っときたいとかあれば mizchi2w@gmail.com までメールください。 なんでやめるの? 要約: 自分のスキルの、ベンチャー企業の社員としてスキルミスマッチ フロントエンドの、とくにSPAで高速で堅牢なアプリを作る、という自分のスキルセットを振り返ると、「需要はあって必要なことには必要だが、どうしても瞬間風速が高いそのタイミングを超えると扱いに困る」という人材適正があると認識しており、前職のQuipperから引き続き2社連続で、「そのために入った最初のプロジェクトが終わると、やや手持ち無沙汰になる」という状態になっていました。 とくにスタートアップのような、予算が厳しい上にピボットする可能性ある現場だと、自分のスキルが活かせないフェーズがある、というのが、会社にとっても、個人のモチベーションとして厳しいものがありました

    Qiita の Increments を退職します - mizchi's blog
  • FF15感想 -トータルの体験はいいが細部がとにかく雑- - mizchi's blog

    クリア済み。隠しダンジョンは行ってない。 できるだけネタバレしない感じで。あんまり体調が良くないので、推敲せず殴り書きで。 最初に このゲームは不思議なゲームで、存在を知った時の、ホスト4人のロードムービーという誰得なのかわからん導入で敷居を下げたあと、結果としておそらくゲーム初心者やアンチなプレーヤーに耐えるほどの包容力か何かで圧倒して全体として満足する、という感じになるのだが、やはり細部が荒いので無限に文句を言えてしまう。 不満を列挙するだけならプレーに耐えないゲームのように思えるかもしれないが、結果として満足感は高いので、個人的には 80/100 の点数をあげたい。が、点数では語れない魅力がある作品ではある。やはり海外の先行レビューを見ても似たような歯がゆさがある。 Choke Point | 『FINAL FANTASY XV』海外レビュー 全体通して 個々のシーンで開発側のやりた

    FF15感想 -トータルの体験はいいが細部がとにかく雑- - mizchi's blog
    ono_matope
    ono_matope 2016/12/05
    プロンプト声つらい。ツッコミどころたくさんだけどふんわり着地するフィーリング、同じく監督交代劇があったハウルの動く城もそんなだったのを思い出した
  • スターエンジニアはキラーアプリを生み出すのか? - mizchi's blog

    Web技術界隈著名人の残念さ具合 - thinkchangの日々日誌 は内容自体はどうしようもないのだけど、テーマ自体は自分も日頃悩んでいたものなので書き出してみる。あ、そういえば行方不明のmalaさんは一昨日のハッカソンで振り向いたらいたんで大丈夫です。 キラーアプリの出現と技術的イノベーションに相関あるかと言われたらあるとは思うけど枯れた技術の水平思考的な余地も十分あるんでキラーアプリが必ずしも技術的なイノベーションを果たしている必要はない。ただし技術優位がない場合は企画レベルで制限かかるので、それを許容するかどうかという話— 賢さを上げて法で殴る (@mizchi) 2015, 8月 24 技術的イノベーションによって可能になったサービスはたくさんあって、たとえばデータベースを使った動的なウェブサービス、2000年前ごろにPerl CGIが現実的な速度で動くようになってから増えた

    スターエンジニアはキラーアプリを生み出すのか? - mizchi's blog
  • 睡眠障害で辛い - mizchi's blog

    一緒に働いたことがある人は知ってると思うけど、自分は尋常じゃなく朝に弱い。 で、自分でもさすがに酷いと思っており、様々な努力をしたが改善せず、結局睡眠科をうけて睡眠障害だと診断された。 自分がそうだと疑った理由は 睡眠障害らしきものとわたしの20年間振り返りメモ - 青いの のおかげ。inoaoさんとは違うけど、自分は 睡眠相後退症候群 DSPSに罹患して9時5時生活を送ることは、毎日6時間の時差ぼけを体験しているようなものである。患者は週日には数時間しか眠ることができないので、週末には午後まで眠って睡眠時間を補うことがよくある。週末によく眠ったり、普段昼寝をしたりすることで、DSPS患者は昼間の眠気から解放されるが、遅い睡眠相はそのまま続く。 DSPS患者は、極端な夜型の傾向がある。彼らは、夜が最も頭が冴えていて、物事がうまくでき、創造力にも溢れていると感じる。彼らは単純に早く眠ることが

    睡眠障害で辛い - mizchi's blog
    ono_matope
    ono_matope 2015/08/01
    受診はしてないけど完全に全く自分と同じ状態で、それが理由で会社から給与を下げられてる。俺もシフト勤務にした方がいいのかなー。
  • OSS界隈について - mizchi's blog

    最近の不満、日人はライブラリ使って満足してる人が多くて、他人が作ったライブラリがすごいし便利最強みたいな人が勉強会コミュニティのボスになってたりするんだけど、海外だったらそのボスがプロダクトオーナーだったりするわけで、明らかに情報格差になってる— 損益分岐点 (@mizchi) 2015, 3月 14 技術文書は翻訳コストが高いのでそのコスト払った人に敬意が払われるのはいいとして、降ってきた変更に対してフィードバックもせずに文句いう人が(俺含めて)多いのでどうにかしたいなという気持ちがある— 損益分岐点 (@mizchi) 2015, 3月 14 言語が障害になってて報告経路がわからんってのが理由の一つだったけど、最近はGithub Issueで一化されつつある。とはいえ要望出すフェーズ超えてディスカッションになると日人の平均的な英語の能力だと明らかに不足で何も言わなくなる人が多い気

    OSS界隈について - mizchi's blog
    ono_matope
    ono_matope 2015/03/14
    ディスカッションについてけない
  • 仕事とは、プログラミングとは - mizchi's blog

    これは、冒頭の問いから端を発した、各章のつながりが不明瞭なエッセイ、流行りのミームでいうと技術的ポエム、であり、プログラミングをテーマにしていてもプログラミングの記事ではない。(と一番最後まで書き終わった自分が注釈を入れている) 良いコードとは何か 趣味で4年、腰を入れたは最後の2年なのだが、それから3年間ほど仕事でプログラムを書いてきた。それで、趣味プログラマと業務プログラマの一番の違いは、業務プログラマが要求されるのが「他人にどれだけ意図を伝えることができるか」ということに尽きると思うようになった。 他人にとって良いコードとは、書いた人の意味が読み解けるコードであると思う。どれだけ書いた人の自意識の中でかっこいい・よいコードを書いたと思っていて、実際にちょっと紐解けばそのポテンシャルがあったとしても、隣に座っている人間に伝わらなかったら意味が無い。正しくコードレビューが行われるなら

    仕事とは、プログラミングとは - mizchi's blog
  • あなたがReactを使うべき理由 - mizchi's blog

    最近フロントエンドでfacebook/reactをずっと使っている。世界的には一部のエンジニアの間で流行っているのだが、国内だとqiitaのタグ等を見てもどうも少ない。みんなもっと使うべきだと思うので、宣伝かねて意見をまとめてみる。 複雑化するデータバインドに対する懸念 MVWのVに対して思いを馳せると、だいたい次のことに行き着く。すなわち、「ある構造体の入力に対して、必ず一意なビューを生成したい」 {items: [1, 2, 3]} を入力とすると、 1, 2, 3のli要素になってほしい。これは単純な例だから問題に成り得ないように見えるが、アプリケーション全体の状態を一つのjsonとして定義し、 そこから常に0から組み立てればアプリケーションの健全性が確保できると考えたことはないだろうか? 現実の問題 UIのだいたいの状態は遷移で表現される。遷移の差分をプログラマが記述する。jQue

    あなたがReactを使うべき理由 - mizchi's blog
    ono_matope
    ono_matope 2015/01/15
    読み逃していた。
  • CSS勉強するだるさ - mizchi's blog

    そろそろ勉強しないトナーと思いつつもだるくなる原因列挙する 前提 お前はJS書いてればいいよと甘やかされてきたので仕事で書いた量は少ない リフロー、ペイント等の表示制御系とパフォーマンス周りだけはそれなりに知ってる position: absolute や visibility: hidden とか 簡単な装飾はできる 段組とかの知識があんまりない わからないこと 解法が一つではなく、最適解がわからない 数こなせばわかる気がするが時間かかってだるい すでにあるサイトを参考にするもそれが正しいのかよくわからない 正解が(プログラマ的感覚だと)醜くみえる たとえば中央寄せ たとえば段組 このrelative指定は当に必要なのか…みたいな ググって引っかかる資料のレベルが低い 古のspacer.gifとか未だに引っ掛かる これはJSと同じ問題なので2010~の資料しかみないようにする 楽できそ

    CSS勉強するだるさ - mizchi's blog
  • QiitaやってるIncrementsに転職した - mizchi's blog

    これ @mizchi がIncrementsにJoinしました - Qiita Blog 特に転職したとは一言も報告してなかったけど、先月末でQuipperを退職し、二週間ほどのモンハン廃人を経て、先週からQiitaを運用しているIncrementsで働いている。 自分が使ってるサービスのドッグフーディングが出来て、将来性があって、大きすぎずに自分の手が届く範囲にやり甲斐があり、JavaScriptエンジニアとして自分にとっての技術的課題がたくさんありそうなIncrementsに行くことにした。 一週間ぐらい働いて、やっと慣れてきて、デプロイももう何度かやったし、Githubのstatsみると一週間で25000行ぐらい書き換えてユーザーの手元に届いてるっぽいんだけど、これは最初に取り組んだのが外部アセットを連結して圧縮したりこねくり回したりしたりするという作業で、作業量以上に行数に出ている

    QiitaやってるIncrementsに転職した - mizchi's blog
  • ゲーマーのエンジニアが転職先としてソーシャルゲーム業界を選ばない理由 - mizchi's blog

    今回の転職にあたって、各方面から「なんでゲーム業界にいかないの?」と何度も訊かれたので、書いておく。 僕のキャリアはソーシャルゲーム業界から始まって、教育の会社にいって、次はxxxだ。転職先に関しては後日。 僕はそもそもスーパーファミコン時代にスクエニ黄金期の洗礼を受けた古い気質のゲーマーで、ソーシャルゲームを一切楽しめない人間で、ソーシャルゲームに開発として関わった人間でもある。バイアスが掛かっているのは認める。 古巣がどうこうって問題ではなくて、業界全体の問題なので、そこらへんは誤解しないように。 ソーシャルゲーム業界 今のソーシャルゲーム業界の開発現場は、開発の現場が「面白いゲームを作ろう」というモチベーションにはなりにくい。 感覚として、ソーシャルゲームってのは「課金させる場」を作ることであって、面白いゲームを作ることはあまりフォーカスされない。 それを言えばコンシューマだって売り

    ゲーマーのエンジニアが転職先としてソーシャルゲーム業界を選ばない理由 - mizchi's blog
  • 昔ながらの「片手間に書くJavaScript」の限界 - mizchi's blog

    Javascriptを使うのをやめろ:Railsの時代遅れ云々についての結論 - Qiita この記事は、全体的に自分の業務以外の評価基準やトレンドを知らないんだなという感じで、わざわざ付き合うと精神的に消耗する感じがした。ただ、それが彼らの職でない以上、自分もこの結論に至るのは仕方ないと感じている部分はある。 真の問題は、自分がレガシーなJavaScriptを書いているという自覚がない人間が、ここ数年の技術トレンドから乖離したコードを書き続けることで他のエンジニアやエコシステムそのものに悪影響を及ぼしているケースが散見されている。一行書く毎にグローバル汚染するスクリプトを見せられてもメンテ出来んと言われても、はいそうですねとしか言えないし、そういう人に最近のライブラリを触らせると遅くなるというのは、画面全体を一つのMustacheテンプレートにしてBackbone.Modelのパラメー

    昔ながらの「片手間に書くJavaScript」の限界 - mizchi's blog
  • Yoに人生を救われた - mizchi's blog

    今ちょっと携帯見つからないだけど 誰か 080 8819 5053 かけるかYo連打して— いま、一番勢いのあるヤツ (@mizchi) 2014, 6月 24 同じ部屋にあるのはわかる— いま、一番勢いのあるヤツ (@mizchi) 2014, 6月 24 @各位 みつかりました!Yo各位ありがとうございます!!!— いま、一番勢いのあるヤツ (@mizchi) 2014, 6月 24 Yoすごい— いま、一番勢いのあるヤツ (@mizchi) 2014, 6月 24 携帯、3日ぐらい見つからなかったんだけど、ソファのシートの下に埋もれてたのを各位のYo連打で無事発見できた。Yoすごい。Yo最高だ。これはステマじゃない!— いま、一番勢いのあるヤツ (@mizchi) 2014, 6月 24 電池切れてなくてよかった— いま、一番勢いのあるヤツ (@mizchi) 2014, 6月 24

    Yoに人生を救われた - mizchi's blog
    ono_matope
    ono_matope 2014/06/24
    三日もバッテリもつのすごい
  • 技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog

    元糞コードマイスターとしては、生産性については思うところある。 技術的到達深度が深い人じゃないとそもそもかけないコードってのももちろん存在して、その前提で10倍とか100倍になりうる話をする。 そもそもマイナスになる人がいるって話。 隠しパラメータをモデル化 エンジニアA:「週に10の成果を出して3の負債を生む人」を考える。この人は開発を止めてリファクタリングをすれば10-3 = 7の技術的負債を返却できるとする。 ここで正確には成果10には* aの係数が掛かっている。これはプロジェクト開始時1.0で、技術的負債が貯まるほど0に近づいて行く 次に、エンジニアB:「週に15の成果を出して10の負債を生む人」を考える(これにも係数aがかかる)。この人は見た目上は上の人の1.5倍速く成果を出しているように観測できるが、負債もたまりやすい。リファクタしても綺麗になりにくい。 これは割とエンジニア

    技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog
    ono_matope
    ono_matope 2014/02/19
    "糞コード耐性" "糞コード習熟度" あるあるww、俺は「身体能力が高い」と表現してた。
  • Scala.jsが凄い - mizchi's blog

    タイトルで嫌な予感がしてる人もいるでしょうが、ScalaがJSに変換されて動きます。やったぜ。 Scala.js http://www.scala-js.org/ 試す このサンプルプロジェクトを git clone するのが良いです。 sjrd/scala-js-example-app https://github.com/sjrd/scala-js-example-app サンプルコードはこんな感じ package example import scala.scalajs.js import js.Dynamic.{ global => g } object ScalaJSExample { def main(): Unit = { val paragraph = g.document.createElement("p") paragraph.innerHTML = "<strong>

    Scala.jsが凄い - mizchi's blog