タグ

プログラミングに関するsanko0408のブックマーク (100)

  • 変更に強いアーキテクチャについてIT業界19年目の僕が超ザックリ説明する - Qiita

    この記事は、設計・アーキテクチャ Advent Calendar 2018 の第7日目の記事である。 はじめに この記事では、IT業界19年目の僕が実践している変更に強いアーキテクチャについて、出来るだけ難しい表現を避け、教科書的なありきたりな内容ではなく現場の肌感覚に近い切り口で「超ザックリ」な解説を試みてみようと思う。 普段自分がよく用いている実装パターンの紹介ともいうべきかも知れない。 この記事で説明すること いざ「変更に強いアーキテクチャとは」とズバリ訊かれても、一概に「これだ!」という答えはない。 プログラミング言語や、フレームワークによっても条件が異なるし、利用可能な技術や開発チームの特性、業務要件や運用要件の特性によっても様々であるし、インフラや開発プロセスまで含めて考えると考慮すべきことは無限にある。 ここでは主にソフトウェアの構造という観点から、"変更に強い" ということ

    変更に強いアーキテクチャについてIT業界19年目の僕が超ザックリ説明する - Qiita
  • プログラマーのジョーク

    language agnostic - What is your best programmer joke? - Stack Overflow 私はコンピューターサイエンス科で教育しているが、何かユーモアによって場を盛り上げたい。ユーモアは場を退屈させず、物事を印象深くするし、物事を学ぶモチベージョンにもつながる。さらに、ジョークが技術的な理解を必要とするのであれば、さらにモチベーションが上がるのだ。 このstackoverflowの質問を受けて、様々なプログラマーのジョークが投稿されている。その評価順に紹介すると・・・ A man flying in a hot air balloon suddenly realizes he’s lost. He reduces height and spots a man down below. He lowers the balloon furth

    プログラマーのジョーク
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Web上でのプログラミングがさらに便利に。JavaScriptを使った開発補助·Tern MOONGIFT

    Ternは入力補完や関数の引数表示と言った機能がついたJavaScript用プログラミング補助ライブラリです。 そろそろWebブラウザ上でコーディングを行える環境が整ってきたのではないでしょうか。プログラミングするためのエディタ環境として必要なのはハイライターなどの他にもたくさんあります。その幾つかを提供してくれるのがTernです。 入力補完。 文字を打つと絞り込まれていきます。 変数、クラスの定義を探します。 オブジェクトの種類を下に表示できます。 変数名を変更します。 名前空間に対応しているので余計なところは変更しません。 関数の引数を表示します。 デモ動画です。 Ternでは入力補完、変数やオブジェクトの定義元検索、関数の引数表示、変数名の一括変更と言った機能がサポートされています。いずれもローカルアプリケーションのプログラミングエディタには備わっている機能と言えるでしょう。しかしそ

    Web上でのプログラミングがさらに便利に。JavaScriptを使った開発補助·Tern MOONGIFT
  • プログラミング言語「日本語」

    ■ はじめに 日語は約1万年前、古代縄文人によって考案された世界的にも最も古い部類のプログラミング言語の一つである。(※) 日語の起源は、古代の北方系言語と南方系言語であり、それぞれの特徴、即ち、強力なマクロ機能と柔軟な音節構造を共に持ち合わせているかなり珍しい言 語である。 更に、日語はその後、約1万年の間にわたって仕様の変更や拡張が幾度も行われ現在の形に至っている。その過程で日独特の固有な機能を有するように なった。 これらの特徴は日語の利点であると同時に、習得する上での障害ともなっている。 書はプログラミング言語としての日語を習得する上で、比較的良く使われる構文を主に取り上げ解説したものであり、これから日語プログラミングを始 める人を対象として書かれている。 ※念のために書いておくと、書は日語をプログラミング言語のように解説することによって、普段意識 しないで使っ

  • Loading...

  • 言語女子会3: Pythonが恋愛に悩んでRubyに相談しましたの巻 - 西尾泰和のはてなダイアリー

    言語女子会: undefとnullは両方必要?、言語女子会2: varは必要?/privateがない?の続編です。 Ruby恋愛相談 Python: 最近悩んでるのよね… Ruby: んー、何に? Python: 自分はどんな人が好きなのかなぁ…とか… Ruby: あー、そんなの簡単よ!一緒にいて楽しいことよ! *1 Python: そんなの誰とだって仲良くなったら楽しいんだから差別化にならないじゃん Ruby: そうとは限らないわよ、たとえば、あっ… C: ごめーん、会議が長引いちゃって遅れちゃった!(髪の毛ファサーっ) Python: ああ…なるほど… C C: 何の話?え、恋愛に悩んでる?そんなの簡単よ。卓越性よ。 Python: 卓越性?? C: そうよ。なんらかの分野で「わたしが一番」という状況を作ることよ。そうすれば男の側からいくらでも寄ってくるわ。 Python: なるほど

    言語女子会3: Pythonが恋愛に悩んでRubyに相談しましたの巻 - 西尾泰和のはてなダイアリー
  • 米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ

    "米国人からコーディングについての怒りのメールを頂戴した" の補足 - その手の平は尻もつかめるさ ↑の方で補足いたしました。(2012.09.04 追記) 最近、英語のメールでよく怒られます。moznion です。 海を隔てて共同作業しているアメリカ人から、僕のコーディングについてお叱りのメールを頂いたので、 自戒の念を込めて邦訳して記します。 書いてあることは「当然」とも言うべき内容ですが、僕はその「当然」も守れていなかったのかぁ〜と反省。 以下、邦訳(意訳)です。 1. 郷に入っては郷に従え 既にソースコードが存在しているって事は、そこには同時にコーディングスタイルも存在しているってことだ。 その既存のソースコードに手を加える場合、別のコーディングスタイルを導入してはならない。 もし君がバックエンドのソースコードを弄っているなら、バックエンドのコーディングスタイルで記述するんだ。 フ

    米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ
  • http://sekailog.com/2012/07/programming/

  • 初心者Webアプリケーション開発者がチェックすべき情報源2012 - ハニーポッターの部屋

    毎年恒例の診断前準備として開発者向けに、「初心者Webアプリケーション開発者がチェックすべき情報源」を集めているので、皆さんにもご紹介。他に追加した方が良い情報源があった場合はご指摘いただけると助かります。 上から重要な順。★がとりあえず読んどけ、の必須。必須のポイントは、短期間で大雑把に網羅的にポイントが整理されているもの。 徳丸は今年は必須かな。電子書籍版もあるから、スマホに常備できるし。 あと、後半、まったく初心者向けじゃないけど、セキュリティキャンプ生向けにWebテストできるためのツール類を紹介。Webセキュリティ組の参考に、あと、ネットワークセキュリティ組もFiddler2を使うのはパケットの中身の可視化に良いと思うので、インストールして見られるのがよろしいかと。ここはツール情報を定期的にポストしようと思うので、キャンプ生はチェックしておいて欲しい。 ★Webサイト構築 安全な

    初心者Webアプリケーション開発者がチェックすべき情報源2012 - ハニーポッターの部屋
  • 「リーダブルコード」が良書すぎて胃が痛い - As a Futurist...

    インフラ系のエンジニアは、あまりリファクタリングとかクラス構造といった視点でコードを読む機会が少なくて、勢い作ったスクリプトやツールはそれはそれはひどいものになりがちです(体験談)。 僕もエンジニアになって以来、まともなコードなんか書いたことなくて、従ってる原則といえば、「グローバル変数は悪」とか「短いことはいいことだ」とか「コメントは書かない方がいい」とか、なんか学生の時にたまたま目にしたよくわからない何かに従ってる程度。 少し大きい規模を書き始めると、昨日の自分と今日の自分で命名規則が全然一貫性なくて、「getHoge()」と「makeFuga()」がおんなじようなことをやってたりしていつも嫌悪感に駆られてました。 ちょうど 1000 行くらいのアプリ書いてたところだったので毎日吐き気をこらえながら「まずは動くものをつくるんだ。全てはそれからだ」と言い聞かせて汚いコードをゲロゲロしてた

    「リーダブルコード」が良書すぎて胃が痛い - As a Futurist...
  • 『JavaScriptのテスト手法』

    みなさんはじめまして。 2011年11月に中途で入社し、現在はAmeba事業部でスマートフォン版Ameba(通称デカグラフ)の開発をしている川口(facebook)と申します。 JavaScriptにおけるテストフレームワーク JavaScriptにおけるテストフレームワークとしては、有名なもので現在以下のものがあります。 ●JsUnit Javaのテストフレームワークとして有名な「JUnit」を参考に作られたテストフレームワークです。 ●QUnit もともとjQueryをテストするために開発されたフレームワークですが、現在ではjQueryへの依存が無くなっているためjQuery以外のライブラリを使ったプロジェクトでも使用できます。 ●Jasmine

    『JavaScriptのテスト手法』
  • Java の語彙で Maybe を説明してみる - ぐるぐる~

    java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;

    Java の語彙で Maybe を説明してみる - ぐるぐる~
  • あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して

    あなたは,下記のコードを理解できない。 p f /g+h/i これはRubyのコードである。「p」は,コンソールに出力する関数である。 問: だいたい,何をやっているコードですか? ※例えば,四則演算など。 構文をおおまかに説明して下さい。 どれが変数で,どれが関数で,どれが演算子か? ↓回答 回答: 一意に決定できない。 下記に, このコードの複数の解釈方法と, この件が引き起こす問題 について述べる。 ※なお,この問題が起きるのは動的言語に限らず,静的言語でも同様に発生しうることを前もって述べておく。 (1)分数の計算とみなすパターン 先行するコードを下記のように書いた場合: test1.rb # 変数に数値を代入 f = 2 g = 1 h = 2 i = 1 # 演算結果をpで出力する p f /g+h/i 実行結果: >ruby test1.rb 4 「分数の計算」とみなされる。

    あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して
  • コードリーディングに最適!たった200行で作れるHTML5製テトリスのプログラミング学習ムービー - Chrome Life

    みなさんは、フルスクラッチでテトリスを作ることができますか? プログラマーといってもゲームを作る機会が少ないと、なかなかすぐには作れないと思います。 JavaScriptでなんとか作れそうな感じもしますが、すんなり実装はできない感じがします。 特にグラフィックやアニメーションをうまく使ったものを作るには、それなりの経験値が必要だと思います。 そこで、今回ご紹介するのが、教育目的で作られたHTML5製テトリスのプログラミング学習ムービーです。 HTML5 tetris - making of HTML5 tetris - making of 驚くべきことに、 たったの45分でテトリスが完成! それもフルスクラッチで、jQueryなどのライブラリーを一切使っていません。 Youtubeのムービーは早送りしていますが、動きを確認しながら実装しているのが分かります。 実際に、こちらでテトリスをプレ

  • 60%の人間はプログラミングの素質がない

    Coding Horror: Please Don't Learn to Code Please Understand Learning to Code Coding Horrorで有名なJeff Atwordが、ある州知事が今年の目標としてプログラミングを習得することを挙げていることに対し、そもそも税金を払う我々市民は、政治家にはプログラミング習得以上に重要な、政治家にしかできない問題の解決を望む、よってプログラミングを学ぶのをやめてくれという記事を書いた。これに対して、反論が多数上がっているが、Jeffも読んでいるある論文をあげて、この議論の参加するためには、必ずこの論文を知っておくべきであると書いた人がいる。この論文は有名で、非常に興味深いので、全プログラマーが読むべきである。 ふたこぶラクダという名前で知られている有名な論文がある。この論文では、60%の人間にプログラミングの素質が

  • Rが使えるフリをするための14の知識

    米国FDAで公認され、ハーバード大学やイェール大学の授業で利用されるようになり、世間での認知度が着実に上昇している統計用プログラミング環境のRだが、ユーザーなのか、ユーザーになりたいのか、ユーザーとして振舞いたいのか分からない人が増えてきた。 スノッブなユーザーとして振舞う場合は、Rの特性を語れる必要があるので、ユーザーになるよりもRへの知識や理解が必要で、実は難易度が高い行動である。それでもあえて意識の高いRユーザーとして振舞いたい人々のために、最低限求められる事のチェック・リストを用意してみた。 1. 参考文献や参考ページを押さえておく 一番大事な事だが、参考文献や参考ページを押さえておこう。公式サイトで配布されている、「R 入門」「R 言語定義」「R のデータ取り込み/出力」は持っておくべきだ。R-TipsやRjpWikiも参考になる。 2. 演算子や制御構文をマスターする 四則演算

    Rが使えるフリをするための14の知識
  • ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組

    WACATE 2011 夏に誘われたのがキッカケでソフトウェアテストを勉強しはじめて10ヵ月くらいがたちました。 先日、わんくま名古屋でソフトウェアテストの勉強法についてLTしたのですが、みなさんにいろいろ聞かれたのでここにまとめておこうと思います。 当は1年の区切りで書こうと思ったけど、まぁいいでしょう。 追記ここから わんくまで発表したLT資料はこちらです うさみみのソフトウェアテスト勉強法 View more presentations from Kyon Mm 追記ここまで こういうのを書くときに時系列で書くべきか、コツを書くべきか悩みますね。 でも、みんなが知りたいのは僕の歴史じゃなくってコツだと思うので後者で書きます。前者はTwitterとか勉強会とかお事とかお茶でもしているときに聞いてみてください。 以下では多くの書籍を紹介していますが、僕がこの10ヵ月で読んだ。ってい

    ソフトウェアテストを勉強しはじめて10ヵ月でやったこと - うさぎ組
  • Java VMで動作する言語「Ceylon」、初のオフィシャルリリース

    Java仮想マシンで動作するプログラミング言語Ceylonの初のオフィシャルリリースとなる「Ceylon M1 "Newton"」が公開された。Ceylonコマンドラインコンパイラ、ドキュメントコンパイラ、言語モジュール、実行環境などが提供されている。Javaが提供している機能がほぼカバーされているほか、次のような機能が提供されていると説明がある。 Java仮想マシンレベルの基型を通常のクラスとして使用可能 型推論および型引数推論機能 ゲッターメソッド、セッターメソッド、構築子などを削除したストリームラインクラス インターセクション型、ユニオン型、bottom型の提供 null値と空シーケンスの静的型付け staticメンバーの代替として使用できるトップレベル関数と値定義機能 ネスト関数 より多くの演算子の提供 より扱いやすい型制約シンタックス より扱いやすいアノテーションシンタックス

  • 223Soft -

    Document Data Structure in MongoDB Express MongoDB lets you easily store structured and unstructured data in a flexible and dynamic database schema. It supports CRUD operations on complex data objects using JSON as the main data type. Its an open source solution so it may not be as robust or well supported as commercial management tools. However it is easy to deploy and works well for most use cas