You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
はじめに みなさん、DRY原則はご存知でしょうか? DRY = Don't repeat yourselfの略で「繰り返しを避けること」という意味ですよね。 良いコードを書くための重要かつ基本的な原則なので、みなさんよくご存知だと思います。 ですが、DRY原則はテストコードを書く場合は必ずしも最善にはならない場合があります。 他の人が書いたテストコードを見ていると、テストコードにDRY原則を適用したために、かえって悪いコードになっているケースをときどき見かけます。 この記事ではなぜテストコードをDRYにすると良くないのか、ということを説明します。 追記:タイトルを変更しました @t_wada さんのコメントを受けて、タイトルを見直しました。 「テストコードはDRYを捨ててベタ書きする」 => 「テストコードの期待値はDRYを捨ててベタ書きする」 【注意】この記事は画一的なテストコードの書き
Railsのcontrollerにおいて、メソッド外で初期化したインスタンス変数を参照すべきでない理由RubyRails 背景 Ruby on Rails を利用した中規模以上のプロジェクトにおいて、 Fat な controller を解消するために、処理を分割することはしばしば行われます。例えば、サブメソッドへの一部処理の切り出し, before_action, concern への処理の委譲が行われます。しかし、処理を分割する際に、メソッド外で初期化したインスタンス変数を参照してしまうような例を時々見かけます。 このような実装は、一見DRYでシンプルに見えてしまうかもしれませんが、実際には開発効率の低下につながったり、バグの原因になる可能性が高くなります。 この記事では、メソッド外で初期化されたインスタンス変数を参照することの危険性と、それを避けた方が良い理由を考察してみたいと思いま
これは「コードを書いていて困ったときに、suinがチャットで質問に答えたり相談に乗るsuinのプログラミング相談室(仮)」で頂いた質問と僕の回答の要約です。 質問 「あああ いいい ううう」のようなスペース区切の単語をSQLでAND検索できるコードを書いてみたのですが、もっと良い書き方ってありませんか? $keywords = ['A', 'B', 'C', 'D', 'E']; // 回答者注:SQLインジェクションが発生しない安全な文字列と仮定します。 switch (count($keywords)) { case 1: $sql = "SELECT * FROM products WHERE name LIKE '%$keywords[0]%'"; break; case 2: $sql = "SELECT * FROM products WHERE name LIKE '%$ke
On the Spectral Properties of Symmetric Functions with Omar Fawzi, Raghav Kulkarni Arxiv 2017 Spectral Norm of Symmetric Functions with Omar Fawzi, Hamed Hatami International Workshop on Randomization and Computation (RANDOM), 2012 The NOF Multiparty Communication Complexity of Composed Functions with Arkadev Chattopadhyay, Omar Fawzi, Phuong Nguyen International Conference on Automata, Languages
This article brought to you by LWN subscribersSubscribers to LWN.net made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible. The startup time for the Python interpreter has been discussed by the core developers and others numerous times over the years; optimization efforts are made periodi
Demo is Shy 🙃 TensorFire is a library that runs neural networks in the browser. TensorFire mobile is not quite ready for prime-time, but here's a video of how this demo would look: If possible please open this page in a desktop browser! This is a demo app showing off TensorFire's ability to run the style-transfer neural network in your browser as fast as CPU TensorFlow on a desktop.
【まつもとゆきひろ氏 特別講演】若手エンジニアの生存戦略 - connpassに参加してきました。若手エンジニアないしはエンジニアを目指す学生向けに、生存戦略を説く主旨の講演でした。まつもとゆきひろ氏とは、プログラミング言語・Rubyを作った人です。 全体的な内容はこちらのブログで非常にコンパクトに紹介されているのでご参照ください。 zuckey17.hatenablog.com 私のブログではまつもとゆきひろ氏もといMatz氏が語ったことを前半に紹介しつつ、後半に主観感想もまとめたいと思います。 ■生き残るには? -死ななければいい。 「エンジニアの生存戦略、つまり生き残るには?」 その問いに「単純ながら、死ななければいい。」という皮切りでスタートした。 じゃあこの"死なない"ためにはどうするか。 そもそも生き残るとはどのような戦略を取ればいいのか? Matz氏は「背景や環境など当然違う
Ansible getting started Getting started with Ansible Getting started with Execution Environments Installation, Upgrade & Configuration Installation Guide Ansible Porting Guides Using Ansible Building Ansible inventories Using Ansible command line tools Using Ansible playbooks Ansible playbooks Playbook syntax Playbook execution Task execution Desired state and ‘idempotency’ Running playbooks Runni
Photo by Andrew こんにちは。谷口です。 プログラミングをこれから学習しようとしている方や新人エンジニアの中には「Ruby on Railsについて学びたい!」という方も多いと思います。 Ruby on Railsは、Rubyで書かれているオープンソースのWebアプリケーションフレームワークです。クックパッドやグノシー、最近話題のMastodonなどといった有名サービスの開発にも利用されており、世界中のWebサービス開発企業に広く普及しています。 今年新卒でエンジニアになった方の中には、「仕事で必要だからまずはRailsを使えるようになってね」と言われている人も多いかと思います。 というわけで今回は、なるべくコストをかけずにRailsに触れられて、学習に役立てられるコンテンツを7件ご紹介していきます。 ■プログラミング経験ゼロからRailsを学びたい人 プログラミング未経験の
プログラミングElixirposted with amazlet at 16.08.22Dave Thomas オーム社 売り上げランキング: 1,168 Amazon.co.jpで詳細を見る 川崎 Ruby 会議 01 の会場で、訳者の笹田さん・鳥井さんから一冊献本いただきました!ありがとうございます!さっそく読み終えたので、紹介を書いてみます。 書評 Elixir に興味がある人がこの本を読むべきなのは、言うまでもないと思います。そういう人は、Elixir に詳しそうな人による書評(このへんとかこのへんとか)を見るといいと思います。 正直、自分はさほど Elixir に興味ないのですが、この本はとてもおもしろく読むことができました。なぜかというと、Ruby っぽいオレオレ言語を作りたい野望を漠然と持ってる人間には、非常に刺激的な内容だったからです。Elixir 自身が「Erlang V
アメリカ人です。 Hello 👋 この記事の目的 多くの日本人は自分の英語力には自信がないではないでしょうか。残念ながら「英語がわからん」、「英語が全然できない」という声をしょっちゅう聞いています。でも、今まで英語ができて意味がちゃんと伝わる何人かの日本人に会ったがあります。完璧な英語ではないけど(外国人も英語でミスる時もある...)、がんばって話そうとするので充分仕事ができる人たち。そういうがんばる姿勢はオープンソースのプログラムや英語圏のプログラムに手を出すためには一番大事なことだと思います(外国人側もすごく助かります)。日本の文化では「私はできる!」と自慢することは少ない中、この記事を通して、流暢に話せなくても自分のプログラミングの命名の仕方にはちょっとだけでも自信を持たせたいなと思います。完璧じゃなくていいです。Let's go! 合わせて読んでいただきたい 【日本人エンジニア必
■ [ruby][rack] 5分でわかるRack RackはRubyのためのWebサーバインターフェイスだ。 RubyでWebっていうとRailsが有名だけど、実はRails以外にもいろんなRuby用のWebアプリ用フレームワークが存在する。 Ramaze Merb Camping Waves などなど…。 一方Webを実際に動かすにはWebサーバが必要だ。RubyのためのWebサーバも、これまたいろんなものがある。 Apache(CGI, FastCGI..) WEBrick Mongrel Ebb Thin などなど…。 ここで問題が一つ。それは「フレームワークが増えるたびに、いろんなサーバをサポートするためのコードが必要になる」ってとこだ。 各フレームワークの作者がみんなそれぞれにCGIやMongrelに対応するためのコードを書いてるなんて、無駄だと思わないか? RackはWebア
みなさん、おはこんばんにちはでス。普段は動画処理とかffmpegまわりの記事を投稿してます。「ス」です。2014年もあとわずか 年末年始とのんびり過ごしたいものです のんびり過ごすなら、やっぱり、画像処理・動画処理が定番ですよね?そこにあるCPUを何故100%まで使い切らないのか?山があるから登るのが登山家の心がけなら、CPUがあるなら使い切るのがプログラマーとしての正しい心がけです。使い切る中で最適化を目指す!では、使い切るにはどうしたらいいのか? 画像処理だ!!! 動画つくるだ!!! 最近は使えるCPUの数が増えてきましたね。少し背伸びをすれば、かつては想像できなかったほど使えそうです。Hadoopです 分散処理です。プログラミング楽しいですね。夢は広がります。CPUは寝かせただけ計算機会を失っているのです。とにかく計算。え?プログラミングができない?それなら、3Dバリバリのオンライン
Pythonプログラマーというか、元々Python(ときどきR、C言語)で数値シミュレーションをしていた学生が、就職してRubyでWeb開発を行うにあたって勉強したことを書き連ねていくだけの記事です。 もし自分と同じような立場の人(これから後輩としてもどんどん増えていくかも!)がいたら、「ここを押さえておけばRubyは問題なく書けるよ」と教えられるように書いておきます。というのも、レビューを行っていた先輩とのプログラミングのスキルとの開きがあり、先輩も私も「どこが分かってないのか説明できない」状態になってしまってお互いに困ってしまった経験があるからです。 RubyとPythonはよく似ているのですが、思想や見た目で違う部分が多く、片方を勉強するともう片方の理解も深まります。 たまに2ちゃんねるのオカルト板である「見たことある世界によく似た異世界に迷い込んだ」みたいな感覚で、なかなか面白い経
こんにちは。 この連載では、ちょっと変わったRuby入門を書いていきます。 想定読者は、Rubyを学びたいプログラミング初心者です。 Ruby以外の言語でプログラミングしたことがあると理解がはかどると思いますが、 Rubyを知らなくてもわかるように、なるべく丁寧に説明していくつもりです。 Rubyをある程度知っている読者には、最初の数回は退屈かもしれませんが、 回を重ねていくにつれ、より深くRubyを知ることができるはずです。 Rubyとは? Rubyは「プログラミング言語」です。 プログラミング言語とは、コンピュータにやらせたい仕事を書くための言語です。 つまり、Rubyを覚えて、Rubyでコンピュータへの指示を書けば、 コンピュータはその指示を実行してくれます。 この指示書のことを「プログラム」と言い、特にRubyで書かれたプログラムを「Rubyプログラム」と言います。 ところで、Ru
この記事を書き上げるには、相当長い時間がかかりました。本来は今年の年明け、 Rubyの死 やデイヴィッド・ハイネマイヤー・ハンソンの TDDは死んだ がアップされて騒ぎになる前に投稿するつもりだったのです。昨年末に書いたツイートを見てください。 > Rubyにはもう飽き飽きした。理由はいろいろあるが、特にその副作用と、ステータスが可変なせいで大量のユニットテストを書かされるのにはウンザリだ。 @abevoelker Rubyの開発に関しては、大勢の人が心のどこかで何かおかしい、何かが欠けていると思っているようですが、たいていの人は責める対象を間違っています。Rubyで書いたアプリがとんでもない代物になったって? それはあなたがきちんとテストコードを書かなかったか、テスト駆動開発(TDD)の指針に則って開発しなかったからです。もしくは、正しいデザインパターンに切り分けるための知識が不足してい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く