タグ

programmingに関するcoolstyleのブックマーク (56)

  • Go言語がダメな理由 | POSTD

    私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの

    Go言語がダメな理由 | POSTD
    coolstyle
    coolstyle 2014/07/28
    真っ当な批判だけどGoはそもそもコンパイル速度に重点をおかれて設計されてるはずなので的がずれてるとは思う。それはおいといてRustに興味もった
  • PCCAA清書2

    このノートでは、個人で携帯可能な情報操作機器の出現と、子供たちと大人たちがその利用によって受ける影響についての考察を行ないます。まるで空想科学小説のようだと思われるでしょうけれど、現在の世の中の小型化と低価格化の趨勢を思えば、ここで議論される多くの概念が近いうちに現実化することは、ほぼ確実なことです。 長年にわたり、技術を活用して社会問題を救おうとするのがひとつの伝統でした:「スラムが問題?ならば低コストの住宅を作りましょう!」「テレビを買う余裕がない?では欲しい時に買えるように、安価なものを作りましょう。たとえ支払いが済む前に壊れるとしてもね!」「子供たちは学んでいないし、教育コストも高すぎる?では、あなたの子供たちがテストに合格するのを保証する、教育メカを作りましょう!」 残念ながら、これらの「救い」のほとんどは、単にサビの上にペンキを塗っているだけです。最初の問題の原因は残されたまま

  • 副作用を最小限に抑えるために必要なこと - かとじゅんの技術日誌

    若干、難しい話ですが、設計力を上げたいプログラマ向けなエントリ。私も道半ばです。一緒に考えていただければ幸いです。 堅牢なアプリケーションを実現する上で「副作用を最小限に抑える」という設計思想は、非常に重要な示唆を含んでいます。 その「副作用」とは、そもそもどんな定義なのでしょうか。 DDDでは"side effect"と定義していて、以下のように解説されています。 Domain-Driven Design: Tackling Complexity in the Heart of Software: Evans, Eric: 8601300201665: Amazon.com: Books エリック・エヴァンスのドメイン駆動設計 作者:Eric Evans翔泳社Amazon P250より引用 In standard English, the term side effect implies

    副作用を最小限に抑えるために必要なこと - かとじゅんの技術日誌
  • Greg Young流CQRS - Mark Nijhof - Digital Romanticism

    この記事はMark Nijhof氏のブログ記事「CQRS à la Greg Young」を氏の許可を得て翻訳したものです。(原文公開日:2009/11/11) この記事は以前のブログである"blog.fohjin.com"にて公開していたものです。 以前、2日間の講習を受けた時に、ビールを飲みながらGreg Young氏とドメイン駆動設計について語るという幸運に恵まれたことがあります。その時の話題は専ら、コマンドクエリ責務分離(CQRS:Command and Query Responsibility Segregation)パターンに関するものでした。Gregは、Eric Evans氏が著作において説明したドメイン駆動設計を受け継ぎ、主に技術的な実装を進化させています。コマンドクエリ分離(CQS)は元々Bertrand Meyer氏によって考案されたもので、オブジェクトのレベルで適用さ

    Greg Young流CQRS - Mark Nijhof - Digital Romanticism
  • 開発者がSurfacePro3を買ったらまずやること - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? SurfacePro3買いました。なかなか面白いデバイスですね。 こころがぴょんぴょんするんじゃ~~ SurfacePro3を機に久しぶりにWindowsを触るという方もいらっしゃるかと思うので、Windowsでの開発環境構築まとめを書いてみます。タイミング的にタイトルにSurfacePro3を入れましたが、SurfacePro3特有の話はありません。 アカウント作成 いきなりですが、アカウント作成のときに注意点があります。ユーザー名に日語を使ってはいけません。GNUツールの中には日語パスやスペースを含むパスを考慮していないものが割

    開発者がSurfacePro3を買ったらまずやること - Qiita
  • 「世界が変わらないのはエンジニアのせいでもある」堀江貴文氏がフリーエンジニアに向けて放つ5つの提言 - エンジニアtype | 転職type

    堀江貴文氏(写真は2013年5月14日掲載の弊誌記事より) 独立行政法人情報処理推進機構(IPA)が2013年に行ったアンケートによれば、8割を超える企業が「IT人材の不足を感じている」と回答している。フリーランスで働くエンジニアの存在意義は、今後ますます高まっていくことが予想される。 だが、フリーエンジニアが働く環境には、依然として大きな課題がある。個人事業主を受け入れない開発現場があるなど、社会的地位が低いこと、プログラミング業務以外の雑務に追われることが、フリーで働く上での障害となっている。 首都圏コンピュータ技術者株式会社の創設25周年を記念して行われたフォーラム こうした課題の解決を目指してフリーエンジニアの支援を行ってきた首都圏コンピュータ技術者株式会社(MCEA)は、創設25周年の節目となる2014年、フリーエンジニアのブランド化と品質保証のための新たな取り組みをスタートさせ

    「世界が変わらないのはエンジニアのせいでもある」堀江貴文氏がフリーエンジニアに向けて放つ5つの提言 - エンジニアtype | 転職type
    coolstyle
    coolstyle 2014/06/23
    SAPたかっ
  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
  • JaSST Tohoku 2014 Keynote

    OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry

    JaSST Tohoku 2014 Keynote
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマ

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
    coolstyle
    coolstyle 2014/05/26
    だいたい同意だけど例がJSに最適化されてていまいち共感しきれないのが残念。
  • シンプルさの必要性 · eed3si9n

    2013-06-24 2012年4月23日にテキサスの Austin で行われた RailsConf 2012 での Rich Hickey (@richhickey) さんによる基調講演、Simplicity Matters を書き起こして翻訳しました。 Rich Hickey さんは Clojure や Datomic の作者です。 この翻訳は Creative Commons Attribution ShareAlike 3.0 ライセンスに基いて公開します。 Rich Hickey 講演 e.e d3si9n 訳 談: こんにちは。ご招待いただきありがとうございます。 聞く所によると RailsConf はいつもコミュニティーからかなり外れた人を選ぶらしく、今回は僕ということになりました。 僕の電話ボックスは外に駐車してあります。(会場、笑) だけど、今日は言語の壁を越える話題を持

  • またrebuild.fmがJavaの悪口で盛り上がってたよ

    http://rebuild.fm/44/ Androidアプリ作ろうとしてJavaプログラマ募集したらクズしかこなかった全部クズだったとか、ひどくありません? まあそれは置いといて、UIみたいに最初から仕様を決められなくて何度も作り直すようなコードはJavaは不向きみたいな話もまったく同意できないわ。 JavaじゃなくてC#だけど、昨日コードを書いていて string url = "http://www…"; のように、URLを文字列で持っていたけど、やっぱアドレス用のクラスでもったほうが安心だなって思って URI url = new URI("http://www…"); と書き直しました。 当然、このurlを参照しているところは全部エラーになります。 Javaをはじめとする静的型の言語をけなしてる人たちは、これが面倒だと思うんでしょうか。 逆にエラーの出ている箇所を片っ端から直してエ

    またrebuild.fmがJavaの悪口で盛り上がってたよ
    coolstyle
    coolstyle 2014/05/22
    それぞれメリットとデメリットがあるのでどちらを選ぶかという選択の問題だと思う。それはそうと動的型付言語派のテストコード書けば大丈夫って考えはクソじゃね。
  • Webフレームワークのパフォーマンス比較

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    Webフレームワークのパフォーマンス比較
  • ソフトウェア開発の楽しさは空白を埋める作業にある(と思っている)

    ソフトウェア開発では設計と実装を繰り返しながら機能の完成度を高めていくことがよく行われていると思いますが、最初にザッと設計したものを実際にプログラミングしていくと当初の思惑とは違っていたり、設計の漏れが発生することがよくあります。 それは内部的なコードの話しであったり、ユーザーインタフェースであったり、エラー時の例外処理であったりします。 そういうことが起こった時に、どう対応するのが1番スマートに解決できるのか、を考えるのが実装担当のプログラマーのソフトウェア開発における楽しみだと思っています。 漏れが発生したときに偉い人に 「設計に漏れが発生しました、どうしましょう?」 よりも 「設計に漏れが発生したんですけど、こんな感じで対応しようと思うんですけどどうでしょう?」 と言えた方がかっこいいですよね。(まあそれを言うがために時間を使いまくった挙句偉い人にそれじゃないと言われたら末転倒です

  • 技術的負債という(非エンジニアにとっての)隠しパラメータが生産性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
    coolstyle
    coolstyle 2014/02/20
    ホントこれって感じですが、非エンジニアがエンジニアをただしく評価するのは難しいよなあ。
  • Loading...

    Loading...
    coolstyle
    coolstyle 2014/01/27
    これ導入したとしても結局静的にチェックを走らせてくれるわけではないのでデバッグのお供にくらいにしかならなさそうだしそこまでしてRuby使いたいんですか的な
  • http://api-portal.nhk.or.jp/ja

    http://api-portal.nhk.or.jp/ja
    coolstyle
    coolstyle 2014/01/25
    最近のNHKはこんなこともやるのか
  • コードを理解できない人間がソフトウエアの記事を書く怖さ

    数年前、他社のプログラミング雑誌を書店で立ち読みしていたとき、その雑誌の編集後記を見て違和感を覚えました。「私はコードは全く理解できないが、間違っていそうな個所は編集者の勘でわかる」と書いてあったのです。「それはおかしいんじゃないか」と思いました。 好意的に解釈すれば、自分にはできないプログラミングができる執筆者に対する尊敬の念が、このような文章になったのかもしれません。編集者としての感覚を誇りたい気持ちもあったのでしょう。たしかに、編集業務の経験が長ければ、「何かがおかしい」という勘で誤りを発見できることがたまにあります。しかし、技術的な誤りをすべて勘で見つけられるわけがありません。 掲載するコードの内容が正しいかどうかをチェックするのは、プログラミング雑誌の編集者にとって重要な仕事の一つです。意味がわからない箇所があれば筆者に確認するべきでしょう。コードがわからないのは恥じるべきことで

    コードを理解できない人間がソフトウエアの記事を書く怖さ
    coolstyle
    coolstyle 2014/01/07
    昔、C言語わかりませんが設計ならできます、と真顔で言ってる人がいてダメだこいつと思ったことを思い出した。
  • Java 8を可能にしたJava 7の機能

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    Java 8を可能にしたJava 7の機能
  • モナドはなぜHaskellでしか積極的に使われていないのか? - uehaj's blog

    (Haskellな日々になってるな…。) モナドというものがあり、Haskellで有名ですが、実際には、Java8のOptional、ScalaのOptionやfor内包表記などでは使用されています。ScalazというScalaのライブラリや、monadlogieというGroovyのライブラリでも使われています。 とはいえ、一般に、Haskellでのように積極的には使われていないというのが公平な見かたでしょう*1。Haskellでは当にいろんなものがモナド化されています。入出力(IO)、状態、失敗するかもしれない計算(Maybe、Either)、非決定計算、継続、パーサ(モナディックパーサ)、リーダ、ライタ、etc.etc……。 なぜこのような差が生じるのでしょうか? その前に、まず押さえておくべきことは、モナドは非常に汎用的な機能だということです。数学的定義はともかく、機能的に言うと、

    モナドはなぜHaskellでしか積極的に使われていないのか? - uehaj's blog
    coolstyle
    coolstyle 2013/11/08
    「 本当に見やすいか?とかは疑問だし、理解しやすいかと言うと端的に言って非常にわかりにくい 」
  • テスト書きすぎ問題 - hitode909の日記

    テスト書きすぎるとよくないって言ってる人がいた.DHHっていう人.作業時間の1/3以上テストしてたらおかしいとか,ActiveRecordのバリデーションなど,Railsの機能はテストしない,とか. Signals vs. Noiseの去年のエントリに、テストをどれくらい書くべきかということについてDHHが指針を示していたものがあったので... - Sooey 偉い人が言ってるからという理由で,テスト手抜き派の人に良い材料を与えてしまった.僕は意見ちがって,作業時間半分以上はテスト書いたりしてる. テストたくさん書くと,最初に書くときのコストは増える.けど,あとから読む時や,変更したい時には,読むだけだし,書くのも差分だけで良い.コード体を理解できれば,要らないテスト捨てるのは,落ちたのを消すだけだから簡単.あとで見て,テスト足りないと分かったときに,明文化されてない仕様からテストを補う

    テスト書きすぎ問題 - hitode909の日記
    coolstyle
    coolstyle 2013/10/15
    Rubyならカバレッジ100%ないと不安ですよねー