ryohey

プログラミングが好きで会社を作った。 https://covelline.com/ h…

ryohey

プログラミングが好きで会社を作った。 https://covelline.com/ https://github.com/ryohey

最近の記事

2023年のコベリン、考えている事

年越しとはいえ子どもたちも小さいので普通の時間に寝たのだけど、夜中に風が強すぎて物音で目が覚めてしまった。せっかく一年の区切りなので、会社とかについて色々考えていることを思いつくままに書いてみることにした。 コベリンでは全員一律の給与設定とし、毎年の売上に応じて給料をギリギリまで上げる方針にしている。 おかげさまで給与額を下げずに、まったく高いとは言えないが、家庭を持つことができる程度にはなっている。 もとより仕事よりも家庭や趣味などのプライベートを優先する雰囲気が強い。子

    • プログラムを綺麗に書くために頭の中に描くこと

      クラスなどを設計するときに、どのようにするときれいな設計になるか。ここでは、クラスやインターフェースを箱、プロパティーやメソッドをプラグやスイッチとして考えることによって、どのように設計すると美しいのかということについて直感的に考えられるようにしよう。 まずプログラムを機械や電子基板の詰まった箱として考えてみよう。その箱は何か機能を持ち情報処理を行う。当然その箱には入出力が必要だ。ここではメソッドやプロパティーをその入出力のポートとして考えよう。 さらに、型の比喩として、

      • プログラミングとコンパイラの気持ちと文芸について。

        ある SF 小説の書評に次のようなことが書いてあった。読者が文章をどのように捉え、どのような感情抱くのか、書き手はそれをコントロールしなければならない。 プログラミングは歴史的な背景から、人に読ませることを目的としている面がある。かつては、計算機が読み込む数値を紙などに記入していたが、次第に高度なプログラムを書くことになってくると、プログラミング言語が必要とされた。コンピュータ産業はものすごい発展をとげ、プログラミングは1人で行うものではなくなってきた。プログラムの規模や複

        • アーキテクチャ設計、抽象化のコツ

          アプリケーションを開発する際に、最初に全体像を描き、アプリケーションのアーキテクチャに落とし込む、と言うことをするだろう。その時に大事なのが、仕様が変わらない部分で切断する、ということである。抽象化とは、ある種のグルーピングをすることだが、なるべく避けたいのは、グルーピングの仕方が途中で変わってしまうような状況だ。 例えば、ある設定値を端末内のファイルから読み込むという機能、これを SettingRepository と名付けたとしよう。SettingRepository

        2023年のコベリン、考えている事

        • プログラムを綺麗に書くために頭の中に描くこと

        • プログラミングとコンパイラの気持ちと文芸について。

        • アーキテクチャ設計、抽象化のコツ

          Rx をいつ導入するか

          Reactive Extensions を導入するべきかは、チームのプログラマーのスキルによって判断するのがよい。Rx を有効に使うためのスキルアップにはいくつかのステップがある。 まずラムダ式を使うようになること。そして配列に対して filter や map といったメソッドを使うこと。純粋関数を知り、副作用について考えること。Unix の哲学、プログラムはなるべくフィルターとして働くように作ると言うものを知ることも良い。パイプ | の使い方がわかると良いだろう。この段階

          Rx をいつ導入するか

          Rx がなぜ良いか

          プログラミングでは何度も同じ実装をせずに再利用することが大事だ。そして再利用できるプログラムを書くためには、なるべく一般化することが大事である。プログラミング言語自体もその一種と考えることができる。例えば if のような条件分岐も、jmp 命令などを使わずに if と書くだけで実現できる。プログラマはわざわざ if を再実装しなくて済む。 非同期処理についてはどうだろうか。私があるライブラリで見た非同期制御のコードでは、while の中でロードの進捗を返す関数を毎回呼び出し

          Rx がなぜ良いか

          AR にはオープンスタンダードが必要

          Web は検索エンジンの進化の歴史としても考えられる。人々が多くの情報にアクセスできるようになるに従って、自身のウェブサイトやブログを通じて情報発信するようになり、共有される情報もどんどん増えていった。HTML といったオープンな仕様が普及に寄与したことは明らかだ。コミュニティーによる仕様の策定と、オープンな仕様、後方互換性、それぞれ独立したアプリケーションの実装とコンテンツの制作が、逐次的な発展という素晴らしい環境を作り上げた。 しかし、今ではモバイルアプリの普及により、

          AR にはオープンスタンダードが必要

          書く場所、感じること

          最初はレンタルサーバーに Wordpress を設置してブログを書いていたけど、雑にいじっててデータを消してしまった。その後しばらくプログラミング関係の文章は Qiita に投稿していたけど、プログラミングに関係ないことを書きたくなったから、Markdown で書けるシンプルなブログシステムを導入した。しかし、どうせ自分のウェブサイトに書いても読まれないと思い、あまりモチベーションもなくて放置していた。 自分のウェブサイトがある理由も無い。仕事は会社でしているし、主な個人活

          書く場所、感じること