「オブジェクト指向」を含む日記 RSS

はてなキーワード: オブジェクト指向とは

2020-10-22

デザインパターンって必要だよね?

どこで使うかわからないけど

知らないよりは知ってたほうがいいし

オブジェクト指向理解にも役立つし

使ったことないけど覚えておいた方がいいよね?

継承禁止するべき

キチガイ刃物ゴミプログラマ継承危険ものは取り上げるべきだ。

オブジェクト指向プログラミングにおける継承は強力な手法であるが、これを正しく使えるプログラマは残念なことに極めて少ない。たいていの場合継承を使うことで却ってプログラム保守を困難にしてしまう。継承アンチパターンの最たるものは、単なるメソッドやメンバ変数の共有のために継承を使うパターンだ。これを行うとデータが密結合になってバグの原因になり、プログラムを把握することも極めて困難になる。

そもそも熟達したプログラマ感覚では、業務で書くアプリケーション実装継承を使うべき局面などほとんど無い。ライブラリ等のより低レベルな処理で仕様が確定しているものについては、継承効果的となる場合もあるが、複雑なアプリケーションロジック継承を使うのはほとんどの場合、時期尚早な抽象化となる。

また、凡庸プログラマ継承で実現したいと思うことは、ほとんどの言語でより適切な手段存在する。

継承を使う資格があるか、一発で判定できる質問

継承を誤って用いるプログラマが多いにも関わらず、実は継承の使い時ははっきりしている。以下は、一定水準のプログラマならば、誰でも答えられる質問である。これに答えられないプログラマ不勉強を恥じるべきである

問題
継承を使うべき/使ってもよいのは、どのようなときですか。
正解
リスコフの置換原則を満たすときリスコフの置換原則 - Wikipedia

答えられない人、自分の答えが正解の内容と一致しているか即座に判断できない人は、継承を使うべきではない。医学知識ゼロ素人外科手術をするようなものであり、非常識まりない。

リスコフの置換原則は、オブジェクト指向文脈で言えば、以下のようになる。

Baseを基底クラス、DerivedをBase任意派生クラスとするときBase型として生成されたオブジェクトをDerived型のオブジェクトに置き換えても問題なく振る舞うようにしなければならない」

問題なく振る舞う」というのは、以下のことを意味する。


継承を用いないやり方

ゴミプログラマ継承を使いたがる理由の99%は、以下である

こんなもん、何も難しいこと考えずとも、以下のどちらかの方法解決する。

AからBの機能を用いる場合は前者を、Aを変更できないがBと同じインタフェースを持たせたい場合後者を使えばいい。

2020-10-16

anond:20201015205510

設計自分たちでと言うが、設計すらできてない。

特に最近技術にはまるっきしついていけてないためか、Ajax(今時Ajaxというような単語を出してしまったところがもうあれですが)などの非同期処理が必要UIに関する設計が未だにJSPベースのものになっている。

さら正規化オブジェクト指向などモデリングに対する知識は皆無で、すべてがただの落書きになっている。

大手SIerは人を管理することが得意というが、管理すらできてなく押し付けてるだけである証拠に誰が何をしているのか全く理解をしていないから実際の進捗と客先に報告する進捗の解離が甚だしい。我々からすると嘘の報告を客先にして、その結果客にコレコレと言われてしまたからどうにかして欲しいというような全くプロジェクトの進行とは無関係なことを言い出す始末。

現場からは以上です!

2020-10-15

大手Sierシステムエンジニア砕けた夢について

この幼稚で非合理で理不尽感情をそのまま頭の中に残すのは、近いうちにつくるリアリティのあるシナリオの下書きとして使う前に忘れてしまいそうでもったいないため記録しようと思う。

また、記録するだけだと正直味気ないためここで公開してみる。叩かれるかもしれないが。。。


私は大手Sierシステム開発部署に属する一次受け新人SEだった。

学生の頃は自分アプリを何個か作った経験がある。

そんな経験を活かし、今後はここでたくさんの技術を身に着けエンジニアとしてのキャリア花咲かせてやる!


・・・なんて事を思っていた。今思えば馬鹿な話である

 大手Sier経験者なら鼻で笑っていたことだろう。

期待に目を輝かせていた無知で愚かな新人仕事内容を聞かれた先輩社員はこう言った。

「ここはね。Excelシステムを作る職場だよ。」







大手Sierの私からみた環境について

大手Sierシステム開発技術に長けたエンジニアほとんどいない。

私の経験では30人いる部署のうち、3人いればいいぐらいである。

ちなみにここでの技術に長けたエンジニア定義だが、基本的にはこのような定義となる。

オブジェクト指向プログラミング」について知識経験がある。

自分で何かシステムを作っていたらならもうここで技術を学ぶ事は何もないだろう。

何故大手Sierシステムエンジニアリングするという職場でそのような事が起きるのか。

実際の理由としてはこのような仕組みとなっているためだ。

■謎めいたフレームワーク自動化ツール 謎めいた設計方針を使った設計作成

 1.何かしらの理由作成者が消えてしまった仕組みがブラックボックス化されたフレームワーク
 2.何かしらの理由作成者が消えてしまった仕組みがブラックボックス化された開発用のシステム

 こんな子たちを念頭に置きながら設計方針というこれまた作成不明ドキュメントに伴いExcel設計書を作っていく作業となる

 コーディング知識のない人でもシステムが作れるように適応していった結果なのだろう

 これらの仕組みを知る人は自社にはいなかった。

下請けに丸投げする。

 これは知っている人も多いかもしれない。自社でやるより単価が安いからという理由らしい。

 たくさんのもの犠牲にしているため、単価が安いからという理由だけで丸投げするのは私は猛反対だが。

 そして下請けはどうもこのブラックボックス化したフレームワークについて仕組みまで理解しているらしかった。

 そんな理由で開発を丸投げする大手Sierメンバーは私を含め生成されることとなる。

 ちなみにおかしな話だが、この下請けブラックボックス化されたフレームワークの仕組みをエンジニアとして質問してみたことがあった。返信は今も帰ってきていない。

最後に(コーディング設計について)

下請けコーディングを丸投げし、設計自分たちで行う」という文化はよく知られているかもしれない

しかしながら、ここで無知な私は何回か疑問に思ったことがある。

一回きりの設計で本当にシステムは作れるのか?
システムの開発はコーディングして初めて気づくことがたくさんある。
それをしないシステム開発って本当に大丈夫なの?

わざわざ答えを人に聞くよりも先に私達が作ったシステムは答えてくれた

「「「相次ぐバグオンパレード」」」

どんな人間にも定量的定性的システムは一番信用できると思った。

感想

はてなの書き方まだよくわからん

書きたいのいっぱいあるから叩かれたとしてもこの後いっぱい書くかもごめん。

ちなみに職場人達はこんな疎遠な内容を書いといて本当に申し訳ないが、やさしい人が多かった。

2020-08-31

anond:20200831112642

オブジェクト指向とか、オブジェクト指向だよというだけなら1行だが

きっちり教えようとすると大学で1-2年とか、そういうレベル

初歩をなんとかというレベル

年収400万超えの知識とか、そんなに簡単なわけがない。

2020-08-28

[]2020年8月27日木曜日増田

時間記事文字数文字数平均文字数中央値
0010812149112.556
019412765135.854
02354414126.138
03212200104.834
04334208127.550
0519155681.940
0628195069.647.5
07666859103.949.5
081651561794.640
092131930690.652
102151834785.348
1124825601103.242
122561981377.445
132282049689.941
1419226262136.842.5
152121676479.142
1626827773103.645
172292052289.643
1819821496108.644
191601409288.143
201771610191.034
2123628939122.627
2225225896102.836
2315123751157.340
1日3804386877101.742

本日の急増単語 ()内の数字単語が含まれ記事

クワーッ(7), イチナナ(6), 7発(8), チュプ(21), マミーポルノ(5), 偽ブランド(4), 投げ飛ばし(6), 釣銭(7), くさくさ(3), 平成3年(3), ハンドガン(3), 特定派遣(3), プラットフォーム(14), 爺(13), 健常者(20), 男尊女卑(14), キャバクラ(19), 出生(9), クレーマー(15), VTuber(11), 警官(20), V(16), ジジイ(16), ホスト(14), ゾーニング(20), 男女平等(12), Vtuber(18), 既婚(22), 店員(39), 同人(24), 黒人(42), 垢(19), キモ(52), 作家(23), 白人(22), 障害者(16), 発達障害(17)

頻出トラックバック先 ()内の数字は被トラックバック件数

同人女は同人垢で結婚妊娠出産報告をするな /20200826205722(59), ■彼女発達障害持ちであることを隠していた /20200825231023(38), ■「できる人」をバカにするのはもうやめよう /20200827104657(37), ■偽ブランド品を買い続ける母親 /20200827113038(20), ■経血サバイバル /20200827011835(15), ■女二次創作界隈の焼きマロ自演問題 /20200827140234(14), ■お前らはまだ本当のバーチャルホストクラブを知らない /20200827082812(14), ■集英社に関わる男性がヤバすぎる件 /20200827083708(12), ■単語を繰り返す言い回し /20200827160441(12), ■ジェンダーギャップが解消されるとどうなるか /20200825192900(11), ■義理の兄の中古自動車屋が潰れた話 /20200826164820(11), ■野良猫に餌付けすんじゃねぇーよ!クソが。 /20200826231801(11), ■増田っていつ「バカに見つかった」の? /20200826234802(11), ■お前ら少しくらい協力しろボケが /20200827142555(10), ■Vtuber狂いとホスト狂い /20200826195939(10), ■気付くと句点を使う僕は少数派になっていた。 /20200827084631(9), ■なぜゴリゴリマッチョイムズ丸出しの鬼滅の刃フェミどもから攻撃されなかったのか /20200826200900(9), ■三国志入門におすすめのなにか /20200827205429(9), ■国公立大学医学部で一番入りやす大学徳島大学である。倍率2倍。 /20200827164058(8), ■anond20200826205722 /20200827132300(7), ■キャバというよりオタクキモいだけでは? /20200827125739(7), ■その分野の知識が無くても雰囲気で楽しめる作品ってあるよね /20200827083319(7), ■虫が嫌いで、旦那のことも嫌いになりそう /20200827071004(7), ■特定派遣正社員になって10年が経った /20200827115616(7), ■オブジェクト指向がわからないあなたへ /20200827110007(7)

2020-08-27

anond:20200827223906

あれは物事を複雑にするから不便

設計コーディングを分けるのに都合が良いか流行っているだけ

多くのオブジェクト指向で書かれたコードはぐちゃぐちゃで読み辛く、そして、変更し辛い

聞いてくれオブジェクト指向理解した

あれはコードがごちゃごちゃしないように整理整頓する技術

分かってしまえば簡単だな

anond:20200827132250

これをITの非専門家が読んでわかりやすいだろう、って思ってるとしたら相当やばい

現実のモノをモデルプログラミングしようというのが、オブジェクト指向定義です。

そもそもプログラミングという行為がわかっていない非専門家に対して

現実に物がありますよね。これをモデルにしてプログラミングする、それがオブジェクト指向です」

って言われて理解できると思ってるの?

モノという考え方は、18世紀哲学者カントに遡りますカント純粋理性批判において、理性と経験によって認識できる以前の「物自体」という概念提唱し、大陸合理主義イギリス経験主義を統一しました。オブジェクト指向におけるモノとは、カントのいう物自体です。

しかもそのモノについていきなりカントを持ち出してくるとか正気の沙汰とは思えない。本当にカント物自体議論経験論を踏まえた上で言ってる?それを相手理解していることを前提としてるの?

anond:20200827110007

こんな分かりにくい文章読むよりもオブジェクト指向UIデザインって本買った方が良いよ

あれすごく面白くて読みやすかった

2020-07-18

anond:20200718103943

オブジェクト指向ゲームに向いてないんですか?!

それは知りませんでした。

情報ありがとうございます

Entity Component SystemとEntity Systemという手法有効なんですね。

日本語少ないのはしんどいですけど、頑張って勉強してみます

anond:20200718044236

仕様要求が柔軟に変わりすぎるゲームは、事前によく設計する必要があるオブジェクト指向は向いていないってよく言われるよね。

今どきのゲームとかUnity活用が広がってる、Entity Component SystemとかEntity Systemって呼ばれている設計手法活用すると良かったりするんじゃないかな。

日本語情報少ないけど。

anond:20200718045901

あー、確かに僕はオブジェクト指向ちゃん理解できてないです。

データの扱いが汚いせいでぐちゃぐちゃになってるのだと思ってました。

最初一生懸命考えてクラスを作るのですが、だんだん最初ルールでは扱えなくなってきて、妥協妥協を重ねてなんでもできるクラスになっていってしまます

デザインパターンもっと理解しないとダメなんですね。

2020-07-11

プログラミングの神物語

俺の独断偏見で(主にWeb系)プログラミングにまつわる神を感じるものを挙げる。

まずDocker。これがない頃はパソコンの中の開発環境はグチャグチャで、特にライブラリ依存関係管理がとてもしんどかった。今はDockerのおかげでいくつも開発環境を持てる様になったんでマジ便利。作った人は神に違いない。

次にオブジェクト指向。これがない頃からプログラミングしてた訳じゃないけど、プログラミング始めたての頃に取り組んで訳分からなくて放置して、手続き型のプログラムをそこそこ書いた後でオブジェクト指向に戻ってくると何これ!データ手続きをひとまとめにできる!めっちゃ便利やん!ってなった。アルゴリズムデータ構造っていうのはそんなタイトル教科書があるくらいにひと続きのものからこうなるのは必然かもしれないけれど、その必然を形にした人は神の様な目を持っていたのだろう。

そしてGit。これセーブポイントが作れるだけでしょ、なんて思ってたけど、GitHubと連携させて複数人ひとつプログラムをいじり始めると途端に神ツールと化す。それにセーブポイントが作れるだけでも十分に神だった。

あとUTF-8Shift-JISやらEUC-JPやらが混在していた世界は端的に言って地獄だったのに、こいつのおかげで文字コード基本的に気にすることがなくなった。神。

他にもいろいろあると思うけど、俺としてはこれらに頭抜けて神を感じる。

2020-07-08

anond:20200707214248

1年間独学でプログラミング勉強した実感

大学卒業後4年ほど会社員をやったあと、ウェブ関係プログラマを目指して1年ほど、バイトしながら独学で勉強しています

ネット上には詐欺師まがいの情報商材屋とイキリマウントゴリラ跋扈し、普通人間向けの情報が少なかったので、参考までに書いてみます

なお、ここ数年のウェブエンジニア転職ブームとは無関係転職を考えていたので、ブームは正直迷惑だと思っています

1) お金時間に余裕があるなら、大学専門学校プログラミングスクールに行ったほうがいいです。

独学にはいくつかの大きな問題点がありますが、もっとも大きいのは「全体のロードマップ存在しない」ことだと思います

学者は具体的に何をどの順番で学べばいいのかわかりませんし、この情報ネット上にはありません(冒頭にも書いた通り、そう思ったからこそ、このエントリを書いています)。

個人的に参考になったものとしては、

などありますが、どちらも普通人間向けというには若干ゴリラ臭と商材屋臭がします。

また、プログラミング初心者向けの教材はおしなべて貧弱で、腹が立つほど不親切です。読んでいて何度もブチ切れそうになります

特に学者場合は、教材の練習問題ひとつ解くにしても、誤字脱字等の初歩的なエラーのために平気で数時間のロスが発生したりします。

当たり前ですが、これは純粋時間無駄なので、すぐに講師相談して解決したほうがいいです。

こういうことを書くとすぐに「自力問題解決できない人間プログラマに向いていない」と言いだすゴリラが現れますが、いまはそういう話はしていません。

そのほか独学だと自分の実力や相場感を測ることもむずかしく、その分詐欺師ゴリラに引っかかりやすくなりますし、基本的おすすめしません。

2) 独学の最初の1歩は「苦しんで覚えるC言語https://9cguide.appspot.com/おすすめです。

いまさらC言語と思うかもしれませんが、勉強するうえで重要なことはプログラミングの仕組みを理解することであって、どの言語から始めるかではありません。

その点、上記「苦C」はとても丁寧に文法説明してくれますし、ポインタ説明を通してメモリの仕組みも教えてくれます

ただし、回答例のコードに誤字脱字があって動かない等の発狂ポイントがいくつかあるので、注意が必要です。

勉強のやり方としては、まずはサイトを読みながらスマホC言語アプリポチポチ書いてみるところから始めると気楽でいいと思います

途中で頭が混乱してきたら、再度冒頭からきっちり丸暗記するつもりで勉強するのがおすすめです。プログラミングに暗記は不要だと言うゴリラもいますが、あれは嘘です。

intはintegerだからintなんだとか、そういうことを調べながらやるだけでも解像度が格段に向上すると思います

実際にC言語バリバリ書けるようになる必要はないので、おおよその仕組みを理解してしまえば、最後のほうは流してしまって大丈夫です。

3) オンライン学習サービスは便利ですが、内容が充実しているとは言いがたいです。

検索するとこの手のサービスが一番上に出てきますが、内容は不十分だと思いますかゆいところに手が届かず、使っていて非常にいらいらします。

とはいえ他に代替となるものもないので、サービスを利用しつつ、必要に応じて入門書を読むのがおすすめです。

私が利用したかぎりでは、Progateは教材の内容が薄く、Paizaは無意味オタク臭くて私は苦手でした。N予備校Udemyの評判がいいみたいですが、使ったことがないのでわかりません。

私はウェブ関係プログラマ志望なので、ProgateとPiazaでHTML/CSS/JavaScript/Git/Ruby/Ruby on Rails勉強しました。

最近初心者Railsエンジニア供給過多の印象があり、DjangoやLaravelのほうが就職には役立ちそうな気がしています

余談ですが、無料の教材として有名な「Railsチュートリアルhttps://railstutorial.jp/ は、あえて劣悪な翻訳放置することで、自社のプログラミング講座に顧客誘導するビジネスモデルのように見えるので、内容はともかく個人的にはあまりいい印象を持っていません。

ちなみに私はこの辺で迷走していたため、いろんな言語ちょっとずつかじっています

スッキリわかるJava入門』はオブジェクト指向理解するのに役立ちましたし、『退屈なことはPythonやらせよう』で覚えたスクレイピング求人情報収集にとても役立っています。ほかには『プログラムはなぜ動くのか』も読んでためになりました。

基本的に本を読んで損することはないので、時間の許すかぎりたくさん読んだほうがいいと思います。私はあまり読めていません。

4) ポートフォリオを作るのはとても時間がかかります

Railsチュートリアルを参考にRailsアプリポートフォリオ作りましたが、完成まで半年くらいかかりました。

上述の劣悪な翻訳のせいもありますが、データベース設計を考えたり、UIを工夫してみたりすると、いくらでも時間が吸い取られていきます

知識ゼロから3ヶ月でポートフォリオ作りました! みたいな若手情報商材屋を見かけると、そんなにすごい能力があるなら普通エンジニアだけやってればいいのに、と思います

完成したアプリDockerコンテナ化したうえで、GithubActionsで自動テストを走らせ、AWSサーバーデプロイしていますが、この辺は言語勉強アプリ製作と比べたら全然むずかしくありません。

まともな日本語で書かれたまともな教材が揃っていますし、ネット記事豊富にあります。ここまでの勉強で、エラーメッセージや多少わかりづらい文章を読み解く能力も身についているはずです。

それぞれ1、2週間集中すれば最低限の実装はできると思います。ただしAWSの設定だけは、適当にやると数万円の請求書が届いたりするので注意が必要です(届いた)。

5) ここまでやっても就職はできません。

上記ポートフォリオを公開し、求人に応募していますが、一向に就職できる気配はありません。

就職活動が不得手なせいもある気がしますが、いいかげんバイトにも飽きてきたので就職したいところです。だれか仕事くれよ。

anond:20200708101105

6人で3億売り上げてる会計ソフト会社2016年に入ったんだけど

メインのプログラマー営業上がりで、オブジェクト指向からない、クラス化もわからない。ソース管理は、ファイル共有(変更箇所はソースに書く)ってのをやってて、

上長やその他人達と色々調整して、git管理ソースをどんどんクラス化してったら、そのメインプログラマー発狂して辞めてった。

2020-07-03

[]2020年6月はてブあとで読むトップ30リスト

はてブホットエントリ(総合)で月内に数多く[あとで読む]タグを集めたエントリ

530あとで/4137users NTT フレッツ光における通信速度などの現状について、背景や仕組みから正しく理解する 2020 - diary.sorah

304あとで/1974users 高等学校情報科情報Ⅱ」教員研修用教材(本編):文部科学省

204あとで/2230users iPhoneでの料理撮影が苦手なライターカメラマン論理的指導を受けた結果→憂鬱撮影が楽しくなった - メシ通 | ホットペッパーグルメ

202あとで/1706users 天才プログラマーの「締切に対する考え方」に、感銘を受けた。 | Books&Apps

177あとで/1946users ネットワークエンジニアとして | www.infraexpert.com

170あとで/1064users 【翻訳技術負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaブログ

169あとで/826users 7つの設計原則オブジェクト指向プログラミング - ソフトウェア設計を考える

168あとで/1180users ローカル開発環境https 化 | blog.jxck.io

166あとで/1005users ソースコードブランチ管理パターン | Martin Fowler's Bliki (ja)

164あとで/991users 大学に行かずにコンピュータサイエンスを学ぶときに優れている教科書講義映像はどんなものがあるのか? - GIGAZINE

164あとで/1541users 衝撃の結末が話題 無名ラッパー投稿したYouTube動画が異例の48万再生投稿者と大学側を取材 - ねとらぼ

161あとで/1789users 無印良品によるサーキュレーターの季節別の活用方法有益すぎる→早速効果を実感する人も「部屋が快適…!」 - Togetter

147あとで/2111users 批判文化日本技術後進国にしているかもしれないという話 - メソッド屋のブログ

143あとで/809users データベース設計の際に気をつけていること - 食べチョク開発者ブログ

142あとで/731users Web企業/事業会社への最高の反面教師: "Spotify's Failed #SquadGoals"を読んで - アジャイルコーチ備忘録

136あとで/1777users 「言い切る人」が強すぎる。 | Books&Apps

129あとで/1655users iPhoneNFCシールでの自動化が便利すぎてシール貼りまくった – ごりゅご.com

129あとで/616users 良いコードを書くための8つの習慣 - New Relic公式ブログ

128あとで/1164users GAFAコーディング面接こんな感じでした - yambe2002’s diary

126あとで/1345users 無料で美麗な絵画カオスポスターなどがダウンロードし放題、編集や商用利用も可能な「Artvee」が登場 - GIGAZINE

125あとで/687users デザイン脳を鍛える方法ハラ ヒロシnote

125あとで/993users 1からイラスト勉強をした話|せたも|note

124あとで/608users Dockerとはどういったものなのか、めちゃくちゃ丁寧に説明してみる - Qiita

124あとで/992users Web制作の常識が変わる、便利な最新オンラインツール48個まとめ - PhotoshopVIP

121あとで/1091users なぜ、国ごとに差が出たのか。そして第二波がどうなるか。 - 楽園こちら側

119あとで/1321users アメリカ美大で学んだこと05:「絵がうまい」より大切なことKenta Shimbo|note

119あとで/1684users 自民系の地方議員です。カネ配りについて書きます。 | はてな匿名ダイアリー

118あとで/1444users 料理に対するモチベーションゼロ」のぼくがたどり着いた、これだけで料理簡単&美味しくなる調味料 - ソレドコ

118あとで/1195users 視座の可視化|kgmyshin|note

116あとで/1224users 【公式ぷよぷよeスポーツ×プログラミング | SEGA

あとで読むタグの数が1月に近いレベルまで大幅に反発、増加した。

一昨日ホットエントリ選択するアルゴリズムが変わったというアナウンスがあったが、影響を受けているかどうかは不明

日毎のホットエントリ中の増田の数が大幅に増加していた。2月に比べて55%増の242本。2018年の秋以来の多さに。

ログイン ユーザー登録
ようこそ ゲスト さん