Archive for 2月, 2017

デザインパターンについて

月曜日, 2月 27th, 2017

どうも、こんにちは。
新入りのtaka-kです。

会社の先輩、naoyaさんに続いて、技術的な話題で投稿させていただきますm(_ _)m
私は「デザインパターン」について学習記事を投稿します。

まずは「デザインパターンとは何か?」から。
ネットで検索すると定義についてはいろいろと出てきますが、
簡潔にかつ一言でデザインパターンについて説明すると
「よく出会う問題とそれにうまく対処するための設計」
となるのではないかと思います。

我々もよく設計、プログラミングをしていると同じような問題に直面することが多々あります。
その場合、過去、「自分がどのように設計したか?」を参考に解決策を模索します。
そういった解決策を体系化したものがデザインパターンになります。

デザインパターンについてはいくつか種類があります。
一番、有名なものが「GoFの23のパターン」で一般的にデザインパターンといえば、
これを指すようです。

他にも、以下のようなデザインパターンがありますが、本投稿では一番有名な
「GoFの23のパターン」と私が興味を持った「アンチパターン」について触れて
行きたいと思います。

・J2EEパターン
・アンチパターン
・アーキテクチャパターン
・アナリシスパターン
・アンチパターン

◆GoFの23のパターン
GoFの23のパターンには以下のような種類があります。
次回からはこれらを詳細に触れていこうと思います。

●生成に関するパターン
・アブストラクトファクトリ
・ビルダ
・ファクトリメソッド
・プロトタイプ
・シングルトン
●構造に関するパターン
・アダプタ
・ブリッジ
・コンポジット
・デコレータ
・ファサード
・フライウェイト
・プロキシ
●振る舞いに関するパターン
・チェイン・オブ・レスポンシビリティ
・コマンド
・インタプリタ
・イテレータ
・メディエータ
・メメント
・オブザーバ
・ステート
・ストラテジ
・テンプレートメソッド
・ビジタ

次回 「アブストラクトファクトリ」

【参考URL】
http://www.nulab.co.jp/designPatterns/designPatterns1/designPatterns1-2.html
http://www.techscore.com/tech/DesignPattern/foundation/foundation1.html

【参考文献】
Java言語で学ぶデザインパターン入門

959日目

月曜日, 2月 20th, 2017

こんにちは、F513です。
スタッフ持回りでブログ投稿が11週目となりました。
2014年7月8日に開設されたんで、959日目となります。

1000日まで、あと41日

記念すべき1000日目は誰が投稿するんでしょうね。
楽しみですね~。

さて、今年も我が家ではお雛様を出しました。

毎年わからなくなるのが、お内裏様とお雛様の位置!!
結論:どっちでも良い
京都風では、お内裏様は向かって右だそうです。
関東では、お内裏様は向かって左だそうです。
どうしてそうなったかは、諸説いろいろあるそうです。
で、結局、お内裏様が向かって左、お雛様が向かって右に直されました。

今年は、3月5日が日曜日なので、ひな壇を直して、五月人形を出すことになるんだろうな( ^ω^)・・・
そして五月人形はハロウィンかクリスマスまで出しっぱなし・・・

では、また。

以上

p.s.
男兄弟しかいないんで、桃の節句って何するのかよくわかんない ^^);

大分を満喫するには?

火曜日, 2月 14th, 2017

初めての投稿になります。
新入社員のtaka-kです。

私は最近、大都会東京から大分に帰ってまいりました。
長らく大分を離れていたので、何らかの手段で大分を満喫しようと思っています。

やはり大分といえば、温泉。
そして、私は温泉が大好きです。
というわけで、このようなものを買って温泉を満喫することにいたしました。

このスパポートをもって別府温泉から選ばれた144の温泉のうち88か所をめぐるスタンプラリーを「別府八湯温泉道」というようです。
88か所のスタンプがそろうと、別府温泉道名人の称号がもらえます。

別府温泉道名人を目指して温泉を巡っていこうかと思っています。
(まだ、1か所しかいってないので、先は長いですが・・・。)

関数指向について

金曜日, 2月 3rd, 2017

関数指向について

 こんにちは。naoyaです。

 毎月一回のプログラム学習記事の投稿です。

 第四回は、「関数指向」について、調べたことをまとめていこう
と思います。

・関数指向
  いわゆる、「関数型言語」と呼ばれる類の言語の設計手法。オ
 ブジェクト指向言語でも使えるところが多い。
  正確な定義等は存在しないが、関数型プログラミングは、複数
 の式を関数を使って組み合わせていくプログラミングスタイルで
 ある。ということは認知されている。
  関数(function)中心の設計で、小さな関数を組み合わせて大
 きな処理を実現しようとする考え方。
  C#では、デリゲート(メソッド(関数)を参照するための型)や、
 ラムダ式(メソッド(関数)を整数などの変数と全く同列に扱う手
 法)などが実装されている。

・関数型言語の特徴
 1.第一級関数…関数を変数に格納できる性質を持ち、第一級オブ
       ジェクトと同じように扱うことができる→関数の受
       け渡しが容易になる。
 2.高階関数…関数を返したり、他の関数を引数として受け取った
      りできる関数。
 3.純粋関数…値を変更しない関数。データを受け取って、データ
      を出力するだけの関数。環境や評価の順などの影響を
      受けない。同じ入力が与えられるたび、決まって同じ
      出力が得られる。プログラムのほかの部分に影響を与
      えない。
 4.クロージャ…戻り値となる特定の関数だけがアクセスできる
       データを関数の内部に保存できる機構。つまり、戻
       り値となる関数は、その実行環境を維持できる。
       引数以外の変数を実行時の環境ではなく、自身が定
       義された環境で解決することが特徴。関数とそれを
       評価する環境のペアであるともいえる。
 5.不変状態(不変性)…状態を全く変更できないこと。状態の変更
          に対するテストを少なくできる。

 関数指向という言葉は、最初に6か月分のお題を決めた時に初め
て聞きました。その内容についても、未だ業務では使ったことのな
い事ばかりだったので、調べても内容が理解できないものが多かっ
たです(ラムダ式とデリゲートのみ、聞いたことがある程度)。
 調べてみた印象としては、関数指向は、データの流れが分かりや
すくなり、総合的にテストをするときの負担が軽くなる、テストが
しやすくなる。ということが所々に書いており、オブジェクト指向
の「開発のしやすさ」とは違う所に重点を置いているという風に感
じました。
 オブジェクト指向言語とは違い、関数型言語にはまだ触れたこと
がないので、触れる機会があれば、今回調べたことを思い出しなが
らやっていきたいです。

 次回(第五回)は「メモリとリソース管理」について、調べていこ
うと思います。

参考URL:
http://postd.cc/functional-programming-should-be-your-1-
priority-for-2015/

http://www.ibm.com/developerworks/jp/java/library/j-ft4/
https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%
B8%E3%83%A3

http://ufcpp.net/study/csharp/
http://syossan.hateblo.jp/entry/2016/07/16/211248
http://qiita.com/lrf141/items/98ffbeaee42d30cca4dc