タグ

ブックマーク / www.techscore.com (21)

  • » React: そのrender()はいつ呼ばれるのか TECHSCORE BLOG

    これは TECHSCORE Advent Calendar 2018 の2日目の記事です。 React で無邪気に開発をしていると、やたらと render() が呼ばれるのが気になります。 PureComponent を使うと render() の呼び出しを少なくできることは、なんとなく知ってはいるのですが、そもそもどういう場合に render() が呼ばれるのか、 State や Context、 はたまた Redux を使ったときに render() の呼ばれるタイミングがそれぞれどう違うのか、いまいちよくわかっていません。いろいろたっぷり試してみました。 目次 準備 State Vanilla State PureComponent Props に Allow Function を直接渡す Context Vanilla Context PureComponent 独自の Provi

    ottonove
    ottonove 2018/12/19
    react.js, redux, 教材
  • 5分で読む入門編:Java 8 ラムダ式 | TECHSCORE BLOG | TECHSCORE BLOG

    はじめまして。梶原です。 2014年3月のリリースからもう1年が過ぎようとしています。Java 8、皆さんはもう実際にコードに触れてみましたか? 私はJava 一色だった仕事を離れて6年になります。Java 歴はそれなりに長いのですが、最後の数年はコードをがっつり書く業務ではなくなっていました。最近ではパっと見で読めない Java コードを目にする機会が多くなり、リハビリの必要性を痛感しています。そして、気になるキーワードが1つあります。Java 8 に新たに搭載された「ラムダ式」です。 「知らない」では MOTTAINAI 人は知らない人やモノへの評価は自然と否定的になるのだといいます。。 「新機能は何となく気になってはいるんだけど、知っている記法でコーディングしても動くし、もちろんコンパイルも通る。普段の仕事だって忙しいから時間をかけて研究するなんて無理。どんな書き方でも動けばいいんで

  • 開発新卒に捧ぐ、基本のアルゴリズムと計算量 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは。一松です。 前回のSQLの基に続き、今回は基として身に付けておきたいアルゴリズムについて書きます。 はじめの一歩として、アルゴリズムを知る上で必要な計算量という考え方と代表的なアルゴリズムの特徴を紹介します。また、これを踏まえてプログラムを書く際の注意点を説明します。 アルゴリズムとは アルゴリズムとは問題や課題を解決するための処理手順をもれなく表現した考え方のことです。この処理手順の考え方はプログラムの世界だけでなく、みなさんの日常にも使われています。 例えば、「雨が降っていたら傘を持って出かける、雨が降っていなかったら傘を持たずに出かける」、これも短いですがアルゴリズムです。もう少し長いものだと料理レシピもアルゴリズムの一種といえるでしょう。手順をひとつずつ行うことでおいしい料理が完成しますね。他にもトランプを絵柄ごと数字の小さい順に並び替えることもアルゴリズムを元に

  • 開発新卒に捧ぐ、データ構造の基本と特徴 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは。一松です。 開発新卒に捧ぐシリーズ第3回の今回は、アルゴリズムとあわせておさえておきたいデータ構造についてお話します。データ構造を理解することで、プログラムの目的に沿って適切な構造を選べるようになるので、動くだけのコードからの質の高いコードを書くステップアップとして読んでみてください。 データ構造とは そもそもデータ構造とは何でしょうか。データ構造は、データをコンピュータの中で扱う際にデータを格納する一定の形式のことです。例えば、プログラミングを経験したことがある人は配列やリストを使ったことがあると思います。じつは、それらもデータ構造の一種です。プログラムを書く際にはどのような処理を行うのかを事前に考え、その処理にとって最適なデータ構造を選択する必要があります。そのためにも、それぞれのデータ構造の特徴(長所、短所)を知っておくことが大切です。特徴を考える要素として、データに対し

  • Rails: SELECTするカラムを追加するscopeを定義する | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Rails で SELECT するカラムを追加する scope を定義する方法をご紹介します。 やりたいこと SELECT するカラムを指定するには、以下のように select メソッドを使用します。

  • StrongParameters

    7. StrongParameters 2013/10/03 シナジーマーケティング(株) 鈴木 圭 [Rails 4.0] 第7章 StrongParameters 7.1. StrongParameters とは 7.2. require と permit 7.3. permit に関する設定 7.4. 配列やネストしたパラメータの扱い 7.5. コントローラ以外で StrongParameters を使う方法 7.6. まとめ 7.1. StrongParameters とは StrongParameters はモデルへの Mass-assignment (一括代入)をコントローラ層で制御するために、リクエストから受け取るパラメータをホワイトリスト形式で指定する機能を提供します。これは、Rails3 で多用されてきた attr_accessible/attr_protected の代

  • Railsライブラリ紹介: ページングを行う「kaminari」 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 一覧画面に「<< | < | 1 | 2 | 3 .. 10 | 11 | 12 ... 98 | 99 | 100 | > | >>」のようなリンクが付いていることは多いですね。 ページング、ページネーション、ページャー、・・・などと呼び方は色々ありますが、ここでは「ページング」と呼ぶことにします。 今回はページングを実現するライブラリ kaminari をご紹介します。 kaminari (https://github.com/amatsuda/kaminari) kaminari の導入 Gemfile に以下の行を追加します。

  • トップページ

    SQL データベース操作言語SQLについて、またRDBMSの持つ機能について詳しく解説します。 DB概要、SQL、テーブル操作、データ操作 ... 特集:replication PostgreSQLのレプリケーションシステムを紹介し、それらの機能を比較していきます。 特集:pgbench PostgreSQLのベンチマークテストに用いられるプログラムである pgbench について解説します。 SQL演習問題 各章に用意された演習問題を集めました。

  • 4. scaffoldを利用した開発(2)

    Quick Start 4章 scaffoldを利用した開発 4.1 scaffold概要 4.2 scaffoldジェネレータの実行 4.3 テーブルの作成 4.4 アプリケーションへのアクセス 4.5 モデル(Active Record) 4.6 コントローラ(Action Controller) 4.7 ビュー(Action View) 4.8 ルーティング 4.5 モデル(Active Record) では、scaffoldで作成されたコードを見ていきましょう。詳細は各コンポーネント説明の章で記述しますので、ここでは、一覧画面の呼び出す際にどのような流れでコードが呼び出されているか確認していきます。 まずはモデルです。app\modelsフォルダには、「item.rb」というファイルが作成されています。これがモデルにあたる、ActiveRecord::Baseを継承したクラスです。

  • Railsで独自のフォームビルダーを作ろう! | TECHSCORE BLOG | TECHSCORE BLOG

    フォームビルダーの実体は ActionView::Helpers::FormBuilder クラスであり、ブロック引数に渡されるのは ActionView::Helpers::FormBuilder のインスタンスです。 普段「<%= form.text_field(:name) %>」のように便利に使っているメソッドは ActionView::Helpers::FormBuilder で定義されています。 error_message_on を書くのが面倒 ときどきですが、以下のように「form.text_field(...)」のように入力項目を作り、すぐ後に「form.error_message_on(...)」でエラーメッセージを表示する、というコードを何度も書くことがあります。 <%= form_for(@user) do |form| %> 名前: <%= form.text_fi

  • Ruby/Railsでロックファイルによる排他制御 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 バッチ処理を作成する時に、気を付けなければならないことの一つに、排他制御があります。 排他制御を行なう方法はいくつかありますが、今回はロックファイルによる排他制御を行なうコードを考えます。 排他制御を忘れると 排他制御を忘れていると、 cron で定期的にパッチ処理を起動するように設定した。 前回起動されたバッチ処理がまだ終了していなかったので重複して起動された。 そんな状況は考慮していなかったので、バッチ処理中にエラーが発生した。データ不整合が発生した。 といったことになりかねません。 ロックファイルによる排他制御とは、以下のような手順で排他的に処理を実行する方法のことを言います。 バッチ処理の最初にファイルをロックする。( File#flock() を使用します ) ロックに失敗したら、処理を終了する。( or ロックが取得できるまで待機する ) 来の処理を実

  • Rails4.2beta1をインストールして最初にはまったこと | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、寺岡です。 Rails4.2は来年の夏に予定されているRails5.0に向けて、4.x系最後のマイナーバージョンアップになるそうです。 今回はRails4.2beta1のインストール方法と、ちょっとしたはまりポイントをご紹介します。 まずはさらっとインストール # railsをインストールするディレクトリを作成 mkdir rails42 cd rails42 # Gemfileの作成 bundle init # Gemfileにrailsgithubのmasterブランチからインストールするように指定 echo 'gem "rails", github: "rails", branch: :master' >> Gemfile # システムのgemに混ざらないようにvendor/bundle以下にインストールする bundle install --path vendor/b

  • Ruby on Rails 4.0

    2013/6/25 にリリースされた Ruby on Rails 4.0 について解説します。 Ruby on Rails 4.0 INDEX Rails 4.0 概要 全体的な変更点 Model に関する変更点 View に関する変更点 Controller に関する変更点 Turbolinks StrongParameters ActionController::Live

  • 2. Rails開発環境インストール

    2. Railsインストール Quick Start 2章 Railsインストール 2.1. インストール前提条件 2.2. インストール この章では、Windows 7にRails 3.0.7をインストールする方法を説明します。 2.1. インストール前提条件 Rails 3.0.7をインストールするためには、下記環境が必要です。 Ruby 1.8.7以降 (ただし、Ruby 1.8.7については、2010-02以降に公開されたパッチがあてられていることを確認してください。また、Ruby 1.9系については、Ruby 1.9.2を利用してください。コマンドプロンプトから「ruby –v」と入力していただくと、バージョンの詳細がわかります。詳しくはRails公式サイトの Getting Started with Rails の「1 Guide Assumptions」をご参照ください) R

  • [SQL] 7. サブクエリ 1

    7.1. サブクエリの基 複数のクエリを組み合わせて、1つのクエリが生成した出力で、他のクエリの出力を制御することができます。少し分かりやすく言うと、クエリを入れ子にして、内側のクエリが値を生成し、それを外側のクエリの述語が評価して TRUE かどうか判断します。 次の図はサブクエリの最も標準的な形です。図では背景がオレンジ色の部分が内側のクエリで、ピンクの部分が外側のクエリということになります。内側のクエリで生成された値を外側のクエリが受け取り、WHERE 句で TRUE となるものについて、値を参照します。そして、内側のクエリのことをサブクエリといいます。 前の図からも予想がつくように、等号や不等号といった関係演算子をベースとする述語に使用するサブクエリは、必ず出力として 1行のみを生成するものでなければなりません。サブクエリが値をまったく生成しない場合、述語は UNKNOWN と評

  • Sphinx + Jenkins で始めるドキュメントの継続的インテグレーション | TECHSCORE BLOG | TECHSCORE BLOG

    はじめに はじめまして、白川です。 システム開発では、多かれ少なかれドキュメントを作成する必要があると思います。 Word、Excelによって作成することが大体と思いますが、いろいろと問題点があるな、と感じるようになりました。 文書自体の整形(改行や改ページ、インデント、文字サイズ)が大変 仕様書が膨大になってくると、何がどこにあるかわからなくなり、内容のメンテナンス・維持が難しくなる 結果として、内容の陳腐化を招いてしまい、 ドキュメントと現実の仕様に差異が発生して、役に立たないドキュメントとなってしまいます。 そうなると、システムの仕様を把握するために、ソースコードをみないといけなくなりますし、 知見が担当者に依存してしまい、担当者が不在になると分からないことが多くなってしまいます。 それを防ぐために、 Python製のドキュメントビルダーであるSphinxを現在試しています。 Sph

  • デザインパターン[モデリング] -TECHSCORE-

    オブジェクト指向プログラミングにおいてデザインパターンを利用することは、開発者に様々なメリットを与えてくれます。 ここでは、「デザインパターンとは何か」というようなデザインパターンの基事項と、GoFの23個のデザインパターンをJavaを利用してわかりやすく解説します。 デザインパターン INDEX

  • [SQL] 5. データの参照 6

    今後、顧客表といえば上表を指すものとします。この顧客表から顧客名が O で始まるものを抽出するには次のように記述します。 -- sample.13-5 -- /* データの参照 */ SELECT * FROM 顧客表 WHERE 顧客名 LIKE 'O%' ; /* 実行結果 */ 顧客コード 顧客名 ──────── ───── 002 ONSIDE もし、ワイルドカードである '_' と '%' を含む文字列のデータで、'_' と '%' を検索したい場合にはエスケープ文字を使用します。エスケープ文字は '_' と '%' の直前に配置すると、'_' と '%' はワイルドカードとして解釈されなくなります。エスケープ文字は LIKE 句の後ろに ESCAPE 句を記述して指定します。次の例ではエスケープ文字を'$'とした場合に、'_'で始まる顧客名を検索する文です。顧客表には'_'で

  • [SQL] 1. データベースの概要 2

    SQL 1章 データベースの概要 1.1. データベースとは 1.2. データベースシステムの特徴 1.3. データベースとファイルの違い 1.4. 代表的なデータモデル 1.5. リレーショナル型データベース 1.6. まとめ 1.2. データベースシステムの特徴 データベースシステムは、データベースとデータベース管理システム (DBMS) をまとめたものです。このデータベースシステムを導入することによる効果は、データベースシステムの特徴として次のようにまとめられます。 プログラムの独立性 データベースの仕様変更が発生しても、多くの場合プログラムを変更する必要がない。 データの非重複 データベースとして情報を一元管理するためデータに重複がない。 同時処理の実現 データベースのアクセスは同時に複数のユーザが行なえる。同時の書き込みや削除なども DBMS が制御するため、データの矛盾が発生す

  • 15.Facadeパターン

    15.1 Facadeパターンとは 第15章ではFacadeパターンを学びます。プログラムを作っていくと、最初は小さなものでも、だんだん大きくなっていきます。 たくさんのクラスが出来て、相互に関係しあい、複雑になっていきます。 クラスを使う場合には、それらの関係を正しく理解して、 正しい順番にメソッドを呼び出す必要があります。 大きなプログラムを使って処理を行う場合、 関係しあっているたくさんのクラスを適切に制御しなくてはいけません。 その処理を行うための「窓口」を用意しておくと、 個別にたくさんのクラスを制御しなくても、「窓口」に対して、要求するだけですみます。 Facadeパターンは、既存のクラスを複数組み合わせて使う手順を、「窓口」となるクラスを作ってシンプルに利用できるようにするパターンです。 ちなみに、facadeとはフランス語を語源とする単語で「建物の正面」という意味です。発音