Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
先週書いた10年のツケを支払ったフロント界隈におけるJavaScript開発環境(2016年4月現在)。という記事がまずまずの反響を得たのですが、僕の予想とは異なり、「こんなに多くのツールやフレームワークを必要とする現状はおかしい」といった、状況批判の意見が多く集まりました。 Mediumなど海外メディアでは、もはやこの種のツールを組み合わせたフロントエンド開発が当たり前として受け入れらており、この半年間ほどは「実際にどの組み合わせがベストか」という議論が行われていました。そして、そういった議論もようやく落ち着きを見せ、おおよそ僕が書いたような組み合わせに帰結しつつあります。 そのため、まさか「フロントは変化が激し過ぎる」とか「保守が大変そう」などといったような、1年くらい前に言われていた意見が、いまだに多くを占めるとは、まったく予想していなかったというのが正直な意見です。ひと昔まえであれ
あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし
こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基本のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに
最近の開発って宗教っぽくない? 今のプログラム開発の現場を見て「コンピュータの動作原理を知らない人が作っている」と感じているという。川上氏は、CPUや帯域などの理論から検証するが、今のエンジニアは、実験で計測して原理まで遡らない。川上氏はこれを「宗教的」とコメントした。 アジャイルとか、スクラムとかいろんな方法がありますよね。もちろん方法的には効果があるんでしょうが、ちょっと宗教っぽいなあと。どこが宗教っぽいかというと、宗教の人って、批判すると怒り出すんです(笑)。 自分が考えたり、おこなった結果よりも、誰かがやった結果に頼るエンジニアが増えていると警告する川上氏。最近会った人から得たという、半導体業界の話を披露した。 半導体って過去40年間のムーアの法則で進歩してきた。それで何か生み出したかという問の答えが「膨大な数の二流のエンジニア」なんだそうです。すぐれた回路設計や性能に注入するより
データ構造など技術的な背景をちゃんと知っていれば、データ操作に関する正しい英語を使えるねーて話です。用語のイメージもつかめるようにしていますので、shift / unshift とかイメージできない方もどうぞ。 1. push / pop = スタック push pop は、スタックの用語で、それぞれ pop はスタックから取り出す、push は挿入する事を意味します。JavaScript や Ruby の Array には、スタックとしてのコンセプトもあるので、push / popという用語が使われます。 対して、Javaの ArrayList (インターフェースは Collection) は、単なる集合を表すインターフェースなので、抽象化のために add / remove というネーミングが使われます。そういえば、Javaには、Stackというクラスも別途用意されていますね。Stack
前置き: 特定の言語ではなく、関数型言語一般に関する説明です。 ここに書くのが良いのかわかりませんが、それを考える時間ももったいないのでとりあえず書きます。必要が生じたら移転します。 皆様のご要望や自分の気分(?)により随時加筆修正します。 「それは違うんじゃない?」というご指摘はもちろん、初心者の方の素朴な疑問・質問や、「ここがよくわからない」「こういうことも書いてほしい」みたいなコメントも歓迎します。すぐに対応できない場合もあると思いますがすみません。Twitterのesumii宛でも構いませんが、コメントのほうが他の方も見つけやすくて良いと思います。当然ながら(他者に対しても)誹謗中傷等はご遠慮ください。 いただいたコメントはほぼ本文に反映していますので、本文を読むために、必ずしもコメントを読む必要はありません。もちろん、興味と余裕(?)があればコメントも読んでいただければ非常に有用
日本語版ではTexinfoファイルがLaTeXファイル上の変更を反映しておりません(すみません)。そのため直接、xelatex jsicp.texを実行して下さい。 The file preamble.tex contains all the configuration and style declarations. Note that the LaTeX file sicp.tex will be generated on the fly, overwriting the previous version. To keep sicp.texi and sicp.tex in sync, I make changes to sicp.texi, which is already a hybrid of Texinfo and LaTeX code. This is fine, becaus
出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 記事の信頼性向上にご協力をお願いいたします。(2014年9月) 評価戦略(ひょうかせんりゃく、英: evaluation strategy)とは、プログラミング言語や、ラムダ計算のような式から成る計算模型において、如何なる手順で、評価すなわち式から値を得るか、という(通常決定的な)規則群である。 プログラミング言語では、その意味のうち、サブルーチン呼び出しや演算子式の評価において引数をいつどういう順序で評価し、仮引数は実引数にどう置換されるのか、サブルーチン呼び出しや演算子式の値への置換はどうなのかといったことが、言語仕様によって、あるいは実装によって定義される(あるいは未定義とされる)。 ラムダ計算(など)における評価すなわち簡約(reduction)においては「(1)入れ子状になった式の最も外側から
どもです、nobkzです。昔からずっと考えていることを、うだうだ書きます。 「Prologなんて何でやるんだ!!!」 とある情報系の学生のつぶやきでした。僕は衝撃を受けました。 情報系の人間じゃない僕 ぼくは、福岡のIT系の勉強会に足をよく運び、また主催として開催したりしています。Technical RockstarsにCTOとして就任し、FLOWer言語をTechnical Rockstarsで開発しています。そしていまでは近日中に公開予定のBaaSを開発中であって、LispやHaskell、Prologなどを書いてたりしています。一日中プログラミングの事を考えて生活しています。 そのせいか、他人にはどうも僕が完全に情報系の人間の様に見られるようです。そして、大学では情報系の学部なんだろうと、小さいころからやって来たのだろうと。 しかし、実際は違うのです。僕は九州大学芸術工学部音響設計学
レガシーコード改善ガイド (Object Oriented SELECTION) 作者:マイケル・C・フェザーズ翔泳社Amazon レガシーコード改善ガイドを読んだ。 この本では、レガシーコードの内部をリファクタリングする際に何を気にする必要があるかとか、非常に長いモンスターメソッドをリファクタリングしていく時にまずどこからやるかとか、そういうことが書いてある。とにかくレガシーコードに直面して何から始めたらいいかわからないという時にはおすすめ。 リファクタリングという本と近い内容だけど、僕の中ではこの本よりはリファクタリングの方がなんとなく肌にあった。また今度再読してみようと思う。 印象に残ったところを書いていく。 依存関係を排除する 「たいていの場合、テストの最大の障害となるのが依存関係です」と書いてあるのだけれど、これは確かにと思った。いつもは無意識にやっているけど、言語化されてよかっ
元糞コードマイスターとしては、生産性については思うところある。 技術的到達深度が深い人じゃないとそもそもかけないコードってのももちろん存在して、その前提で10倍とか100倍になりうる話をする。 そもそもマイナスになる人がいるって話。 隠しパラメータをモデル化 エンジニアA:「週に10の成果を出して3の負債を生む人」を考える。この人は開発を止めてリファクタリングをすれば10-3 = 7の技術的負債を返却できるとする。 ここで正確には成果10には* aの係数が掛かっている。これはプロジェクト開始時1.0で、技術的負債が貯まるほど0に近づいて行く 次に、エンジニアB:「週に15の成果を出して10の負債を生む人」を考える(これにも係数aがかかる)。この人は見た目上は上の人の1.5倍速く成果を出しているように観測できるが、負債もたまりやすい。リファクタしても綺麗になりにくい。 これは割とエンジニアに
Following is the email I received from Google for this article. This is so unhelpful to identify the cause. After carefully reviewing the article, I found one URL that was flagged to contain malware(probably usual old domain expired and purchased by other problem) so I removed that link. Please review and re-publish this article. I hope Google's flagging system tells me why it trigger the flagging
Lisperの人ならみんな知ってる竹内関数(たらいまわし関数)という関数があります。 定義としてはこんな感じ。 そのシンプルな定義からは想像もつかないほど複雑で膨大な再帰呼び出しがおこなわれるとても興味深い関数です。たとえば引数にTarai(10,5,0)を与えると343,073回も再帰呼び出しされたりします。 この関数呼び出しの引数がどのように変化するか知りたくてプログラムを書いて調べてみたところ、Tarai(10,5,0)の場合は3つの引数がそれぞれ0〜10(xは-1〜10)の間で少しずつ変化するなかで、2つの値を固定してひとつの値が下降していくような挙動があったりして、なんだか音楽の3和音のコード進行を思わせるような動き方です。 そういうことなら、ということで実際に音にして聴いてみました。Tarai関数が呼ばれるたびに引数のx、y、zを、0=ミ、1=ファ、2=ソ、……、のように音に割
最近になって、ひとつ気付いた事がある。 僕は仕事としてプログラミングやデザインをするのに向いていない。 一応、職業としてはソフトウェア・エンジニアという肩書きを持っており、 UI と UX を専門とする研究職という立場にはなっている。 プロジェクトの進行や状況に応じてプログラマー役、デザイナー役、ビジネスプランナー役をバタバタと切り替えているので、最近は「必要に応じてなんでもやってる感あるので、あんまり自分を専門家的に思えなくなってきたっていうかタダの小間使いでは」としか思えないのではあるが。 ”何か”を作りたい、成し遂げたいと思ってものづくりに取り組んでいない 他のプログラマー、エンジニアやデザイナーが、実際どうなのかは知らないけれど自身がプログラミングを独学で始めた時によく言われた事が 「何かやりたいこととか、作りたいものが無いのに覚えたり学ぼうとしても、効果は低く、あまり意味が無い」
世の中には数千種類のプログラミング言語がありますが、その多くは何らかのプログラミング言語から影響を受けてできており、また、自身も他のプログラミング言語に影響を与えています。その関係を1つのマップ上に落とし込んだ相関図が「Programming Languages Influence Network」です。 Programming Languages Influence Network | Exploring Data https://exploring-data.com/vis/programming-languages-influence-network/ まるで星のように見えている点がそれぞれ1つのプログラミング言語を表しています。たとえば「Lisp」にマウスオーバーすると、このように関連する言語までのラインが表示されます。このうち、オレンジ色は「影響を受けた言語」、青色は「影響を与え
Loading the data may take a while, please be patient... Graph Navigation You can zoom in and out the graph with the mouse wheel. You can move the graph by clicking and holding the left mouse button and moving the mouse. Language Information When you click on a language node in the graph a modal window with information about the language will be displayed. Language Search Search for a language name
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く