言語処理100本ノックは,実践的な課題に取り組みながら,プログラミング,データ分析,研究のスキルを楽しく習得することを目指した問題集です 実用的でワクワクするような題材を厳選しました 言語処理に加えて,統計や機械学習などの周辺分野にも親しめます 研究やデータ分析の進め方,作法,スキルを修得できます 問題を解くのに必要なデータ・コーパスを配布しています 言語はPythonを想定していますが,他の言語にも対応しています
コンピュータプログラミングにおいて、イミュータブル (英: immutable) なオブジェクトとは、作成後にその状態を変えることのできないオブジェクトのことである。対義語はミュータブル (英: mutable) なオブジェクトで、作成後も状態を変えることができる。mutableは「変更可能な」、immutableは「変更不可能な、不変の」という意味を持つ形容詞である。 あるオブジェクト全体がイミュータブルなこともあるし、C++でconstデータメンバを使う場合など、一部の属性のみがイミュータブルなこともある。場合によっては、内部で使われている属性が変化しても、外部からオブジェクトの状態が変化していないように見えるならば、オブジェクトをイミュータブルとみなすことがある。例えば、コストの高い計算の結果をキャッシュするためにメモ化を利用していても、そのオブジェクトは依然イミュータブルとみなせる
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "副作用" プログラム – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2016年3月) プログラミングにおいて、式の評価による作用には、主たる作用とそれ以外の副作用(side effect)とがある[1][2]。 式は、評価値を得ること(※関数では「引数を受け取り値を返す」と表現する)が主たる作用とされ、それ以外のコンピュータの論理的状態(ローカル環境以外の状態変数の値)を変化させる作用を副作用という[3][4][5]。 副作用の例としては、グローバル変数や静的ローカル変数の変更、ファイルの読み書きなどのI/O実行、などがある。 一方、高水
モンキーパッチ(Monkey patch)は、システムソフトウェアを補完するために、プログラムをその時その場の実行範囲内で拡張または修正するというテクニックである。モンキーパッチの影響はその時その場のプロセス(プログラムの実行インスタンス)だけに限定されて、プログラム本体には及ばない。 モンキーパッチは動的プログラミング分野の用語であり、その定義はRubyやPythonなどの各言語コミュニティに依存している[1][2]。サードパーティ製のランタイムシステム、ソフトウェアフレームワーク、仮想マシン上で発生しがちな、好ましくない動作の違いや各種バグに対してパッチ当てすることを目的にしての、プロセス上に展開されたクラスコードやモジュールコードの動的な修正作業、という点は共通している。 語源[編集] 当初はモンキーパッチは、ルールを無視して実行時にこっそりとコードを変更することから、ゲリラパッチと
C言語によるプログラミングでは、列挙型(enum型)はたいへん良く使われます。 オブジェクト指向言語でも、それは変わらないようです。C言語を拡張したC++言語ではもちろん、Java言語でも、J2SE 5.0になってから列挙型が導入されたほどです。 その一方で、オブジェクト指向言語で列挙型を使う弊害も、繰り返し指摘されてきました。列挙型とswitch文を使ったソースコードは、ポリモーフィズムを使って書き直すべき典型的な悪い例として、しばしば取り上げられて来ました。 しかし、列挙型を使ったプログラムのすべてが、ポリモーフィズムを使って書き直すべきだとは限りません。継承によるポリモーフィズムは、オブジェクト指向の特徴の1つですが、サブクラスを作るべきではないケースもあるのです。そのような場合に、列挙型を使ったコードを書くことは、悪いことではありません。 ここでは、オブジェクト指向言語における列挙
MVC is a phenomenal idea. You have models, which are nice self-contained bits of state, views which are nice self-contained bits of UI, and controllers which are nice self-contained bits of … What? I’m certainly not the first person to notice this, but the problem with MVC as given is that you end up stuffing too much code into your controllers, because you don’t know where else to put it. To fix
Conrad Irwinさんの「MVC is dead, it's time to MOVE on.」を訳してみました。 MVC is dead, it's time to MOVE on. この訳文も原文のライセンスを引き継いでCC-BY-3.0ライセンスで利用可能とします。 追記13:58 すでに訳してた方がいました。MVCの時代は終わった。MOVEを使い始めましょう。 - ふじこのプログラミング奮闘記 MVCは死んだ。MOVEするときがきた MVCはすばらしいアイデアだ。モデルを持ち、モデルは内部に少しの状態をもつ。ビューは内部に少しのUIをもつ。そして、コントローラは内部に少しの・・・ 何を持つ? 私は確かにこのことに気づいた最初の人物ではない。しかし示されたようなMVCの問題のために、あなたは最後には過剰なコードをコントローラに詰め込むことになる。なぜなら、他にどこに入れていいか
united-coders.com - Functional programming with Python http://united-coders.com/christian-harms/functional-programming-with-python Pythonを使った、関数プログラミングの入門的な記事。 短い記事なのに、すごく良くまとまっていて、説明の流れもいい。関数プログラミングの入門としても、Pythonの入門としてもいいと思う。 「整数のリストから奇数だけ取り出す」という処理を、まずforループを使った平明なロジックで書き、それを少しずつ関数プログラミングっぽい書き方にしていく。使っているのは主に、filter、map、reduce、lambda、list comprehension(リスト内包表記)など。 関数プログラミングでは、関数をオブジェクトとして渡すことが前提
設計、コーディングで用いられる言葉の整理。こいつらって何よ? DAO(データアクセスオブジェクト) VO(バリューオブジェクト、値オブジェクト) DTO(データトランスファーオブジェクト) エンティティ これらは、EJBの出現により(?)メジャーになった言葉たちです。 DAOは、DB(永続ストア)にアクセスするためのクラスです。 たいてい、VOを引数に受け取って、INSERT、UPDATEを行ったり、 SELECTしてVOやVOのリストを返したりします。 DTOはVOとほぼ同義ですが、微妙に違います。 何が微妙に違うかはメンドクサイので忘れます。 エンティティは、DAO+VO(DTO)のようなペアでDB操作を行わず、 エンティティクラス自体のメソッドにINSERTやSELECTを行うメソッドを定義します。 (SELECTは別のクラスにしたり、staticメソッドにしたりもする) VO/DT
2010年03月01日 ValueObjectとDTOって何が違うの? ValueObjectとDTO アプリケーションレイヤー(アーキテクトの階層)の疎密度を限りなく疎にしようと考えた場合、レイヤー間の伝達は"構造をもった値"のやり取りが最適です。構造を持った値と言えばDTO(Data Transfer Object)が一般的かと思うが、たまにValueObjectなる言葉が浮上する。その違いについて今日は語ってみる。 構造を持った値 具体的に書くとこうだ。 [Serializable] public class CustomerDTO { public string Id { get; set; } public string Name { get; set; } } なんてことない、値を保持する為だけのクラスです。 DTO 上のコードはまさにDTOなんですが、値をまとめて受け渡すこと
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "Data Access Object" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年6月) Data Access Object(DAO)とは、ある種のデータベースや永続性機構の抽象化されたインタフェースを提供するオブジェクトであり、データベースの詳細を開示することなく特定の操作を提供する。 なお、マイクロソフトのライブラリであるData Access Objectsとは直接の関係はない。 概要[編集] Data Access Objectは問題を、ドメイン固有のオブジェクトとデータ型を使ってアプリケーションにどのようなデータ
Menu Top JavaEE勉強会 参加するには FAQ MakingSenseofStreamProcessing MicroservicesVsSOA ModernJavaEEDesignPatterns BSA EIP DSL DDD 議事録 最新の20件2023-11-24 MicroservicesVsSOA/The World of Service-Based Architectures 2020-11-14 DDD/Knowledge-Rich Design MakingSenseofStreamProcessing/Example Implementing Twitter 2020-10-28 EIP/Aggregator 2019-12-18 EIP/Publish-Subscribe Channel 2018-06-10 FrontPage 2017-07-08 Ma
ドメイン駆動設計(DDD)の Value Objects パターンでは、オブジェクトを不変(immutable)にすることを強く推奨している。 なんとなく、そんなもんか、と思っていたけど、ある日、なるほど、というケースに出くわした話し。 変数名にこだわる 前提として、変数名にこだわるようになったことがある。 DDD のユビキタス言語パターンの実践として、 ・パッケージ名 ・クラス名 ・メソッド名 ・変数名 は、業務上の意味のある名前にこだわることを、徹底しはじめた。 Java Calendar クラスの日付計算 当日から、2週間後に、期限切れになる、というビジネスルルールを実装していた。 Calendar getExpireDate() { Calendar now = Calendar.getInstance(); now.add( Calendar.DATE, 7*2 ); retur
師曰く数学的な値のように振る舞うオブジェクトを作成しなさい。どういうこと?変化する状態の入れ物ではなく、整数のように振る舞うオブジェクトのことです。数学の世界では、「1」に「1」を足しても、「1」自身が変更される訳ではなく、新たに「2」という数字が作成されます。プログラミングでこれを表現するのが「Value Object」になります。よって、「Value Object」は不変オブジェクト(Immutable)です。Javaのプリミティブはこの数学世界の住人で、そのラッパー(やStringは)はまさに「Value Object」と言えます。どうして?オブジェクトには大きく2種類、状態が変化する「状態型」と、変化しない「値型 *1」があります。値型を実現するのが「Value Object」パターンです。状態型の方が一般的ですが、状態を持つが故に「呼び出し順序」が重要になってしまっています。そし
When programming, I often find it's useful to represent things as a compound. A 2D coordinate consists of an x value and y value. An amount of money consists of a number and a currency. A date range consists of start and end dates, which themselves can be compounds of year, month, and day. As I do this, I run into the question of whether two compound objects are the same. If I have two point objec
Data Transfer Object(DTO)はデザインパターンの一種で、アプリケーションソフトウェアのサブシステム間でデータを転送するのに使う。過去、J2EE第一版においてはValue Objects(VO)と呼ばれていた。なお、マーティン・ファウラーが著書「Patterns of Enterprise Application Architecture」において示した「Value Object」はこれとは意味が異なる[1]。Data Access Object と組み合わせて、関係データベースからデータを検索するのに使うことも多い。 Data Transfer Object とビジネスオブジェクトや Data Access Object との違いは、DTO が自身のデータの格納と取り出し機能(アクセサメソッドとミューテータメソッド)しか持たない点である。
Strutsを使っていたときにこのへんすごく迷った。SAStrutsでもでてきたのであらためて調べ直しておさらいしてみる。 VO vs DTO vs DAO vs Entity VOは不変でなければならないので、MVC間でやりとりされるオブジェクトは、DTOといったほうがいいらしい(参考:OZACC.blog: VOとDTOの違い)。 WikipediaのDTOをみると「過去、VOとも呼ばれていた」とある。よって、藤原はVOをもう使わないようにします(会社で使ってるな・・・)。 DAOはSelectとかInsertとか、DBにアクセスしてくれる人のこと。結果としてEntityを返してくれたりする。 Entityはレコードを表現する。DTO(VO)っぽいけど、DAOみたいなこともしやがるらしい(参考:DAOとかVOとかDTOとか – 人生全て暇つぶし) DTOは、EntityからDTOが作ら
GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・本質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内
ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) きのうの、要件を出すところから運用まで、一気に書いてみるで、 (4)機能要件の抽出(クラス図のメソッド部分) のところで、 ・(2)の名詞、つまり、主語か、目的語のクラスのメソッドに、 開発システムのアクティビティ図のアクティビティを埋める と書いたところがありますが、メソッドを、主語と目的語のどちらに入れるかについての話。 ■まず、原則、そのクラスのCRUDは、メソッドにある これは原則論ですが、あるクラスの ・作成または追加(C:Create) ・検索(一覧)読み込みなど(R:Read) ・編集、更新、変更など(U:Update) ・削除(D:Delete) を意味するようなメソッドは、そのクラスのメソッドとします。 たとえば、「申請書を作成する」というような場合、 申請書ク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く