ブックマーク / ledsun.hatenablog.com (16)

  • Romeは本当に速かった - @ledsun blog

    RomeプロジェクトJavaScriptフォーマッターがリリースされました。 rome.tools ちょうどPrettier を使っているプロジェクトがあったので比較してみました。 当にめちゃくちゃ速い。 prettierで8秒掛かるのが0.5秒とかで終わる。— ぎゃばん@手洗い (@ledsun) April 6, 2022 prettierを速く動かしたくてparallel-prettierに.prettierignoreを読む修正を加えて動かして速くなったか - Qiita でNode.jsのまま並列化したparallel-prettierを試したときは やったね1.25倍速くなりました! でした。 それと比べてるとRomeは10倍以上速くなっています。 驚異的です。 JavaScriptパーサーやASTを扱うライブラリーなどの資産がないrustで書き直すのは、大変な労力に思えま

    Romeは本当に速かった - @ledsun blog
  • 実行するたびに決まった順番で値を返すRubyスクリプトはなぜか自分を書き換える - @ledsun blog

    Webアプリケーションのテストに使う端末を決定するために、最初はruby -e 'p %w(iPad Firefox Android).sample'とランダムで値を返していました。 使っていると、ランダムよりは順番がよいと感じました。 また、順番も前回使った端末を覚えていて、その次から実行できると嬉しいです。 そして作ったのが、このスクリプトです。 script = File.read(__FILE__).split("__END__\n").first value = DATA.gets puts value File.open(__FILE__, 'w') do _1.write script _1.write "__END__\n" _1.write DATA.read _1.write value end __END__ iPad Firefox Android 実行すると次のよ

    実行するたびに決まった順番で値を返すRubyスクリプトはなぜか自分を書き換える - @ledsun blog
  • エンジニアの採用面接対策 - @ledsun blog

    paiza.hatenablog.com に、面接で落とした理由があります。 最近は技術者が面接をすることが多いです。 技術者は採用面接に不慣れなことが多く、質問が下手くそです。 面接官側の不手際で、コミュニケーションに齟齬があって落ちていることもあると思います。 自分の採用面接経験での「こういうことが聞きたかったんだよ」という辺りを書きます。 実践すれば面接に受かることを保証するものではありません。 1位:自己表現(プレゼンテーション)力 職務経歴を聞かれて、一から十まで細かく説明しようとする人 面接の最初にお互いの緊張をほぐすために、自己紹介をしてほしくて使います。 面接官がどっから題に入っていいのかわからないので、とりあえず聞いてみます。 30秒〜1分くらいで、簡単に説明してもらえれば良いです。 内容よりは、喋り方を見ています。 評価をするためよりは、これから会話をして行くときに「

    エンジニアの採用面接対策 - @ledsun blog
  • 日本でアジャイルが流行らない理由 - @ledsun blog

    ポジション的なもの 個人的に、アジャイルは「(あんまり未来や遠くのことを考えるのをやめて)目の前にある問題を解決しよう」という思想と認識しています。 現実の問題を見ないで「将来、日と米国のソフトウェア開発技術の差が広がるから、ウォーターフォールをやめてアジャイルをやろう」とか、何を言っているんだ、おまえは? と、思います。 キーワード「エンタープライズ」が出てきているので、業務システムの話をします。 情けないぞアジャイルコーチ 私は間違っていた。ごめん。ウォーターフォールは何のメリットも無い - メソッド屋のブログを読みました。 感想を書きます。 サム・グッケンハイマーの一言 サム・グッケンハイマーは、マイクロソフトが、アジャイル、そして DevOps 移行したことに関するソートリーダー の方が 「ウォータフォールは一切メリットがないので止めておきなさい」 といったそうです。まあ、ポジシ

    日本でアジャイルが流行らない理由 - @ledsun blog
  • オブジェクト指向設計とは - @ledsun blog

    オブジェクト指向という言葉には オブジェクト指向分析(OOA) オブジェクト指向設計(OOD) オブジェクト指向プログラミング(OOP) の三つの意味があります。 オブジェクト指向初心者泣かせです。 ここではオブジェクト指向設計を説明します。 ソフトウェアの設計 ソフトウェアの設計には二つの側面があります。 作成するソフトウェアの共通部分を探し出しモジュール化する 作成するソフトウェアが将来変更される部分を抽象化し変更しやすくする 一つ目のモジュール化は構造化設計からある手法です。 オブジェクト指向設計で特に取り上げる点はありません。 ここでは二つ目の将来の変更のために抽象化することに重点を当てます。 オブジェクト指向設計 オブジェクト指向設計とは多態を実装する部分を決めることです。 多態とはオブジェクト指向言語を活用した次のものです。 変更可能な点に抽象クラス*1 (オブジェクト指向言語

    オブジェクト指向設計とは - @ledsun blog
  • Ruby on Rails を勉強しない方が良い100の理由 - @ledsun blog

    はじめに 今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyappを読みました。最初ツッコミどころが凄い*1なと思ったんですが、二回読んでちょっと思い当たる節があるなと思ったので書きます。 Rails を勉強しない方が良い理由 Railsにはscaffoldがあるので間口がすごく広いです。実際それを紹介した 15m intro video*2 が理由で人気を博しました。が、奥行きが深い。どこまで学べば「Railsを使いこなせます」って言えるのかまるでわかりません。 鉄板作法が共有されていない 2005年に出てきた割に意外に鉄板作法が共有されていません。 たとえばビジネスロジックをどこに置くのかについては以下のような議論があります やはりお前らのMVCは間違っている Rails

    Ruby on Rails を勉強しない方が良い100の理由 - @ledsun blog
  • 社内勉強会はヤメだ。自主的はいらん、全員技術発表だ! - @ledsun blog

    社内勉強会について僕にも思うところがある*1。 社内勉強会をやらない理由 - 勘と経験と読経 社内内弁慶を社外勉強会に参加させる方法: ソフトウェアさかば 最初に言っておくと弊社は20人くらいしか居ないし、受託開発と派遣が半々くらいのSIerだ。 id:kent4989 の会社とはだいぶ状況が違う。 社内勉強会はやらない 結論から言うと社内勉強会はやっていない。やらない理由は発表者のコストが高くてメリットが少ない。 勉強会のつらさ IT系の勉強会のノリだと テーマに対して興味のある人が少なく参加者が少ない 最新ネタは業務と離れすぎていて、継続する努力がハイコスト過ぎる 研修のつらさ 教育を重視して基礎的な内容をやると 基礎的な内容だと教える側が刺激が足りなくて飽きる 教える側が教えるほどは理解していないので、事前準備がハイコスト過ぎる そんなわけで社内勉強会をやるのはやめました*2。 技術

    社内勉強会はヤメだ。自主的はいらん、全員技術発表だ! - @ledsun blog
  • アジャイルがダメなようでダメじゃないちょっとだけダメだと思う7つの理由 - @ledsun blog

    素晴らしいエントリが立て続けに出ているので便乗します。 id:arclampさんのアジャイルがダメだと思う7つの理由 id:haradakiroさんのアジャイルがそんなにダメだと思わない7つの理由 1.全体スケジュールにコミットできない 主語を間違えやすいけど 経営者は顧客やVCと全体の計画にコミットしなきゃいけない の通りで全体スケジュールにコミットできるのはスポンサーだけなんです。開発者は「努力すること」しかコミットできません*1。 現実問題として、プロジェクトを上手くスタートするにはゴールをいつまでに何かって決める必要があります。アジャイル開発でも重視している。アジャイルサムライはインセプションデッキにかなりのページ数を割いています。 2. アーキテクチャ上の無駄が生じる アーキテクチャ設計を慎重に考えても元のビジネスモデルがウンコだったら役に立ちません。困ったことにビジネスモデルは

    アジャイルがダメなようでダメじゃないちょっとだけダメだと思う7つの理由 - @ledsun blog
  • SIerにてエンジニアの残業を無くす方法 - @ledsun blog

    残業の話題がとっても盛り上がっているので参戦。 残業を悪とするチームを作るだけでは全く足りない - Change The Worlds 残業をしない会社を作るために - GoTheDistance 残業を悪とするチームを作ろう - ひがやすを blog 長時間労働・サービス残業は自分の価値を下げ企業存続を危うくする | Act as Professional - hiroki.jp by HIROCASTER ここで考えるのはSIerにてエンジニアの残業を無くす方法です。残業を無くすには労働生産性を上げればよい。労働時間が月184時間以内で売上が今と変わらなければ、給料を上げない限り残業は無くなる。さてSIerにて労働生産性を上げるには? サービス業としてのSIerの場合 二次請け以下の受託開発と人材派遣型のSIerはサービス業です。売上は労働時間単価の積み上げ、実にシンプルです。 売上

    SIerにてエンジニアの残業を無くす方法 - @ledsun blog
  • 2年目プログラマにおススメする5冊 - @ledsun blog

    プログラマは勉強し続ける職業です。を読みましょう。 誰に? 対象とする人 仕事でWebアプリケーションの一部を作ったことがある 仕事SQLを書いたことがある 対象としない人 一人でWebアプリケーションを作れる DBの論理設計ができる 5冊の デバッグルール 楽々ERDレッスン ノンデザイナーズ・デザインブック プログラムはなぜ動くのか 体系的に学ぶ 安全なWebアプリケーションの作り方 デバッグルール プログラム自体は書けるのに依頼された仕事をこなすのに諸先輩に比べると時間が掛かることがあると思います。掛かっている時間の内訳をみると、プログラムを書くことより書いたプログラムが動かなかった時の原因調査に時間が掛かっていることが多いです。何故時間がかかるのでしょうか?エラーメッセージでググって上手い事解法を引き当てるか、コードを適当に変更して正しく動くことを祈るぐらいしかできないからで

    2年目プログラマにおススメする5冊 - @ledsun blog
  • 今日からソフトウェア開発者になった人に本気で勧める5冊 - @ledsun blog

    就職して今日からソフトウェア開発者になった人向け。 気! どれくらい気かって言うと会社の新人に強制的に読ませてるくらい気*1。読破したら偉いとか、興味をもってくれたらうれしいとかじゃない。絶対読め。そして絶対読める。 誰に? 対象とする人 SIerでWebアプリを作る 研究の道具としてプログラミングをしたことはあるがプロダクトを作ったことがない 今まで書いたプログラミングのコード量が3000行以下 文系出身でプログラミングとか知らない、今日からソフトウェア開発者を目指す 対象としない人 新しいことを知るのが好きで、難しいほど興奮する 既にプログラミング経験していて、プログラミングをの腕を上げる具体的な方法を知りたい ソフトウェア開発に興味がない 組み込み系とかソーシャル系とか自社サービスな人は、ネットワークとWebアプリは他のに変えた方がいいかも 5冊の 読むは以下の五冊。そ

    今日からソフトウェア開発者になった人に本気で勧める5冊 - @ledsun blog
  • SIビジネスの流れ - @ledsun blog

    システムインテグレータ(SI)のビジネスは大きく以下のような流れで進みます。 集客 営業 要件定義 製造 検収・請求 フォローアップ 集客 どんなビジネスでも同じですが、まずは見込み客を集めます。システム開発に興味を持ったお客様を探しアポイントを取ります。よく使われる手法に商品・サービスの説明をするテレアポ、割引を謳ったDM、自社の推す技術のセミナー、役員が個人的に懇意にしている既存顧客の紹介があります。会社の規模やブランドにマッチした手法を選ぶ必要がありますが、会社が成長にするにつれ手法を変えていかなければいけないのが難しいところです。 営業 アポイントの取れたお客様に顧客に直接、自社の提供するサービス、商品の説明を行います。また会社の紹介も同時に行います。お客様がある程度の金額を掛けてソフトウェア開発を行いたいと意思表示をされた場合に次の段階に入ります。そこで現状の課題を聞き出します。

    SIビジネスの流れ - @ledsun blog
  • Node.jsのスーパープログラマ達の今 - @ledsun blog

    僕がNode.jsを熱心に勉強していた頃に、スーパープログラマとして憧れていた人たちが、今何をやっているのか調べてみました。 github.com Express.jsなんかを作っていたtjは、Go言語がメインに書いているようです。 OSS活動自体あまりやっていなさそうです。 github.com Browserifyをつくっていたsubstackは、主にrustを書いているようです。 サーバーを書いていた人はGo言語に、CLIを書いていた人がrustに行くのかもしれません。 github.com Babelを書いていたsebmckもrustです。 github.com Rad VaggはGo言語とPythonのようです。 github.com tjfontaineはOSS活動がほとんど無くなっています。 ここからはNode.jsを去っていない人たちです。 github.com Guill

    Node.jsのスーパープログラマ達の今 - @ledsun blog
  • 人はFat Modelを恐れサービスを求め ドメインモデルは貧血に至る - @ledsun blog

    この文章は祈りです。 主にRuby on Railsアプリケーションを想定した話です。 Ruby on Railsアプリケーションでは、Fat Model問題という問題が起きることがあります。 ドメインオブジェクトが肥大化しメンテナンスしにくくなる問題です。 Fat Model問題に対応するためにサービスレイヤーを導入することがあります。 「ドメインモデル貧血症」と呼ばれているアンチパターンです。 ドメインモデル貧血症 ドメインのロジックをドメインオブジェクトの中に入れないという設計ルールに従っているのでしょう。その代わり、すべてのドメインロジックを含むサービスオブジェクト群が存在しているのです。 Fat Modelを恐れよ Fat Modelは「単一責任原則」を満たしていないモデルです。 単一責任原則 | プログラマが知るべき97のこと 1つのサブシステムやモジュール、クラス、関数などに

    人はFat Modelを恐れサービスを求め ドメインモデルは貧血に至る - @ledsun blog
  • プログラマにできるとよさそうなこと - @ledsun blog

    十行程度のプログラムが読めること プログラミング言語の文法を知っている 分岐とループを追いかけることができる 変数の状態変化を追いかけることができる 関数呼び出しを追いかけることができる 十行程度のプログラムを複数回書いたことがある プログラムを読んでプログラムの動的な振る舞いを想像できる プログラムの主な処理の結果を想像できる 主な処理の終了条件がわかる プログラムから主な処理を読み取れる 似たようなプログラムを書いて、動かしたことがある 既知のプログラムと読んでいるプログラムの違いがわかる イディオムを知っている イディオムを書いたことがある プログラムがどう動くか知っている 重複したソースコードを関数に抽出できる 重複したソースコードがわかる 同じ入力と出力をもつコードブロックがわかる コードブロック単位で入出力を比較できる プログラムのある機能がソースコードのどの部分に依存している

    プログラマにできるとよさそうなこと - @ledsun blog
  • 優秀なプログラマになるために - @ledsun blog

    みんな良いこと言うので、刺激を受けて考えたことを記録します。 生きてるだけで丸儲け ストレス対処法 撤退戦術 タスク殺すマシーン 人間に戻る儀式 運 技術力を身につける方法 車輪を再発明する 脱ゴールデンハンマー病 学習の助 優秀なプログラマとは? おまけ 生きてるだけで丸儲け 優秀なプログラマーになるためのコツ · GitHub 優秀なプログラマーに「育つ」んだし、それには時間が必要 優秀なプログラマーになるということは、上記の通り長時間を要するということも踏まえると、メンタルヘルスにリスクがある環境に長時間暴露されることが不可避である 業界で長きにわたり活躍し続けている人というのは、それだけですでにひとかどの人物 すごく良いです。 優秀なプログラマになる前に、死んでしまっては元も子もありません。 生き延びることはなにより大切です。 幸か不幸か現状のIT業界はハードなストレスにさらされや

    優秀なプログラマになるために - @ledsun blog
  • 1