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

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

2019-07-04

anond:20190704110836

オブジェクト指向カプセル化って二十年くらい前に流行った概念な気がするけどまだ息してるのか、驚いた。

C#始めた増田だけど、オブジェクト指向カプセル化分からん

setterは使わない、getterは使わない

その他色々と「やらないほうが良い事」はあれど

どう書けばいいのかについては特に記載が無い。

勇者に学ぶオブジェクト指向プログラミング(Java)みたいに、分かりやすい例は無いの?

https://qiita.com/nrslib/items/73bf176147192c402049

これ見たけど、ダメダメダメダメだけで

こうすれば最高!という例が無かった…。

2019-05-11

中卒引きこもり歴6年の姉が大卒公務員の男と結婚した。

俺たち姉弟は不幸にも出来損ないの遺伝子を受け継いでしまった。

コミュ障で多動気味の父親と、美人だが(だったが)学習障害気味の母からまれた私達は二人の特性を見事に受け継ぎ無能という名のサラブレッドとして現代社会の悲しき烙印を押された。

二人共同じくらい馬鹿愚鈍友達がいなかった。

社会性がないため姉は中学2年生から不登校になった。県1の馬鹿高校に行ったが夏休みが来る前に中退した。

俺は別のアホ高校入学するも高校2年のときいじめに耐えかね姉と同じく中退した。

俺はすぐに高校認定を取った。意外とこの程度ならなんとかなった。

姉はネトゲ廃人だったりニコ生主だったりとよくわからない生活をしていた。たまにバイトらしきものをしてたこともあるがどれも一瞬で辞めていた。

18歳になった俺は1.5年程度だけの短期IT系専門学校入学した。

普通に偏差値の高い大学卒の元社会人なんて優秀な人もいたが入試という学力によるふるいの概念がないためか何しに来てるんだろいうという人が多かった印象だった。

就活はかなり苦労した。短い学生生活の中で個人開発やプログラミングは好きになれたから喋りは下手だったがエンジニア面接では意外にも好評なことが多かった。

しか無能であるが故にエンジニア外の人事面接適性試験でふるい落とされるのだ。

俺みたいな無能ちゃんと弾かれるなんて現代社会採用フローというのは大変良くできていると感心した。

オブジェクト指向という言葉すら知らない級友が次々と内定を取る中で応用情報持ちで何個かWebサービス構築経験もある俺だけが取り残されていった。

卒業間際になってなんとかギリギリ田舎の零細IT企業内定した。

頭は壊滅的に悪く初っ端から愚鈍いじられ役というポジションを確保したが、証券会社の株うんちゃらシステムを構築できるくらいの知能がギリギリ残っていたのは不幸中の幸いだった。

コンビニバイトあんまり続けられなかったがSlackメインでほとんど人と喋らなくていいプログラマーという職業はまあまだましな環境だと思えた。しかし2年ほど勤めたがやはり上司パワハラ鬱病発症退職した。

俺は遅刻しても怒られない、気が向かなかったらリモートワークOK残業なしな自社サービス中心の県外のIT企業を1年かけて探し出して転職した。残業代で稼げない分給料ちょっと下がったけど、もろもろゆるいオタク中心の会社だったから生きるだけならギリギリなんとかなった。

姉が結婚したと連絡があったのは俺の転職から2年後くらいだったと思う。

出会いは親には言ってないらしいがペアーズがきっかけだったらしい。

相手は姉より2歳年上の大卒公務員。見た目は身長は160cm前半くらい。女に慣れているようには見えなくて、良く言えば誠実、悪く言えば陰気な印象を受ける男だった。

結婚の報告を聞いたとき俺は素直におめでとうと言った。姉は優しい夫に支えられる不器用専業主婦になった。幸せになったようだった。

久しぶりにGW自分と姉は実家に帰った。家族実家に揃うのは随分と久しぶりだった。

そこで姉に「あんたも私みたいに良い人はよ見つけて幸せになりや。」というような無神経な言葉をかけられて俺は思わず頭に来てしまった。

『良い人を見つけて幸せになる?』そんな人生の救済ルート無能な男には端から存在しなかった。

「俺は両親の無能を受け継いでしまったために毎日毎日地獄みたいな人生を送ってきた。お前みたいに俺と同じ社会の最底辺無能なくせに女というだけで何の努力もせず冴えない公務員に媚売って養ってもらって人生救済されるような甘えきった人生送ってる奴と一緒にするな。頼むから俺みたいな不幸を作らないためにも子供は産まないでくれ。」というようなことを言ってしまった。流石にちょっと謝ったが姉は泣いた。

両親に怒られたが似たようなことを両親にも言った。

俺は無能母親の甘えと冴えない父親妥協により無能に産まれ無能からとありとあらゆる差別を受けてきた。

無能な男にポリコレの救済なんて存在しない。有能な同性愛者への差別にどんなに厳しい社会になったとしても無能異性愛者の男に救済が訪れることなんてないのだ。

トイレの男女アイコンなんかに差別とかケチつけて大真面目に議論してる人達より俺は何百倍も苦しんで生きてきた自信があるからそんな彼らがなんだかとても空疎に見えた。

俺は社会になんて出たくなかった。姉のように優しいパートナーに養われるヒモみたいな人生を送りたかった。

何故俺だけが苦しんで、何の努力もしなかった姉は救済される?

答えは簡単無能な女は男の性欲に愛されて、無能な男は女の性欲に愛されないから。

6年もニートやってた社会経験0のコミュ障な男に『公務員女性結婚して養ってもらう』なんて選択肢があるか?あるわけねーだろ。

脳みそ含めて五体満足生まれた有能な男女にはわからいかもしれないが、無能には無能世界がある。無能な男は異性に媚売って守られる生き方すら許されず、それは即ち毎日が生きるか死ぬかの戦いで、この世に味方は一人もおらず、そこがどれだけ地獄なのか、考えたことはあるだろうか。


頼むから男は自分が狙える範囲からといって無能女性妥協するのは辞めてくれ。

無能女性結婚して幸せになるのは百歩譲ってまだいい。ただ子供は作らないでくれ。少なくとも男を生むのだけはやめてくれ。

あなた女性からあなたのような無能でも生きていけたかもしれないが、男の社会はそんなに甘くはない。

俺は恐らく間違えてるんだろう。でもこういう風にしかなれないんだ。

俺はめちゃくちゃ人生苦しいよ。30までには死のうかなと思ってる。

すべての人類Fuck you

2019-05-09

anond:20190509220857

オブジェクト指向本質なんて禅問答に近いものから教えられない。

ちなみに俺は問題の切り分けをしたときにその「切り口」をインターフェースによって規格化できて、

問題構成する部品を交換可能になるるあたりに本質があるのではないかと思う。

 

まあそれはどうでもいいとして、プログラミング言語におけるオブジェクト指向という機能説明なら、普通にできるでしょ。

データとそのデータに対する操作をひとまとめにしたものオブジェクトです的な。

あと具体的にいけ。

多態性は犬とネコワンニャーさせるのではなく、テキストボックスボタンでそれぞれFocusメソッドを呼び出す説明をせよ。

2019-04-29

anond:20190429085205

元号改正周りでさんざんドタバタあったうえに、元号発表からわずか1か月でですが?

僕は昭和平成に変えた時の処理が適当で異常があった可能性も考えているから、30年前どういう改修をしたかまでさかのぼらないとならないと思ってる。

テストケースどころか、オブジェクト指向構造プログラミングすらも怪しくgoto使いまくり時代スパゲッティコードをな!!

2019-04-11

プログラミングまったく理解してないけど某大手下請けSEとして5年くらい働いてた。

今は転職して非上場中小企業事務職やってる。

偏差値ギリ50くらいの大学情報系の学科で、JavaとかC言語とかのプログラミングが必修科目だったし、基本情報過去問丸暗記で合格したんだけど、まっっったくプログラミング理解できないのにSEかいう大それた名前仕事についてしまって死ぬほど後悔した。

forっていうんは、なんか繰り返し同じことするやつで〜、i=i+1って書いてあったらiが一個ずつ増えるんだっけ?みたいなレベル

最初の行に書いてある〜.〜みたいなやつどのプログラムでも同じだけど何?ライブラリって本借りるとこでは?ポインターオブジェクト指向…?型?桁溢れ?何語…?全然わかんない…

いやもうほんと、社名とか書いたら「こんなのがよく働いてたな…あの会社やばいな…」って思われそう。

そんなくらいの不出来さでも、現場の人手が足りないから、1日に何度も上司に怒鳴られながら、機能追加も故障改修もやったし、顧客問い合わせの対応も本番環境トラブル対応もした。

徹夜休出サビ残代休がいつのまにか消えてるのも経験した。

流石に二年三年働けば何だかんだできることは確かに増えたし、リリース関係の社内手続きとか、一人で夜間本番監視なんかもどうにかこなせるようにはなったけど…

しか上司もよくあれだけ怒りながら四年も面倒見てくれたなぁ…とちょっと思ったので、恨みレベルが「子供に早死にされろ」から「40手前でバーコードハゲメタボになれ」くらいになった。

話逸れた。

今の仕事でも、既存マクロエラー出たときに原因箇所を調べたりするのは出来るけど、そこから何を直したら直るのかわかんない。

欲しいマクロ機能要望とかフローチャートとかは作れるけど、それがプログラムにならない。

この先ずっと、大学から8年も触れてきたのに意味もわからないし苦手なもの、って思い続けるのが嫌すぎてこの八年分の人生無駄にした気がして憂鬱になる。

八年あったら簿記とかFPとかTOEICとか勉強できたんじゃないか?とか、社労士とか書士とかそういう職業につながる資格勉強できる大学にした方が良かったんじゃないか?とか。長い人生のうち八年かもしれないけど、人生80年としたら一割だし、自立して過ごせるのが18〜60くらいだとしたら二割だし、二割分出遅れたらもうフツーの人間はゴールする前に足切りされちゃうでしょ多分…

大学はよく考えて選んだ方が良いし、大学で失敗してもせめて仕事はよく選んだ方が良いよぉ…

仕事選びも失敗したなら、辞めるなら早い方が良いよぉ…

私みたいに未来永劫ぐちぐち後悔し続けることになっちゃうよ

2019-04-04

anond:20190404174248

プログラミングプロになるつもりなら、Pascal → C → PythonJava あたりでどう?

俺は今でも Pascalシンプルさと一貫性と融通のきかなさ(良い意味で)は初心者にうってつけだと思う。すぐ学べるし。

C と Python は知らないでは済ませられないだろうから必須

で、結局は Java もやることになるだろうし。

何が言いたいかと言うと、まずは構造プログラミングを学び、それだけでは収拾がつかなくなる場合があることを実感してからオブジェクト指向へ進むのが自然で納得できるだろうということ。

そして、最初オブジェクト指向の要素が無い言語を学べば、オブジェクト指向の要素を使いたくても使えないので、その方が却ってスッキリしてわかりやすいだろうという事。

現に今でもPascalAda最初プログラミングの授業をする大学もあるそうだし。

anond:20190404174248

いやあ、タイムライン限定しなくても;;

PHPJavascriptみたいな、オブジェクト指向記述形式無しにロジックが書ければいいじゃない

初心者クラス概念冗長すぎる

anond:20190404171222

となると、オブジェクト指向以前の言語で入門ということか。

やっぱりCかPascalあたり?

anond:20190404131646

これホント同意、「オブジェクト指向」に入門したいと思うまではJavaC#コードを見せちゃならんと思う

anond:20190404131646

Javamainメソッドすら何かのクラス内に書かなくてはならないかオブジェクト指向的にしか書けないと表現したよ。

anond:20190404034812

Javaはやめとけ、ってのは同意。だけど、Java手続き型言語だぞ、と訂正は付け加えておくとく。

オブジェクト指向手続き型はセットでサポートしとる言語ほとんどじゃ。

こうすればプログラミング覚えられるよ【随時追記

プログラマじゃないけどプログラミング完全に理解した()おばさんが理解してる基礎知識書くよ。

追記 この文章プログラミング勉強をしたいけどその周辺にある基礎知識になかなか触れる機会がない人向けに書きました。これらの基礎知識があると、困ったときに調べ方すら分からないという状況は回避やすくなるはず)

まずLinuxUnix系OSの使い方。

ターミナル、いわゆる黒い窓からCUIコマンドユーザーインターフェース)でコンピュータを使う方法を覚えよう。これは大学コンピュータリテラシーで習った。MacOSXで復習すると捗った。(追記 すごく間が抜けてたけどMacOSXUnix系OSです)

まずはファイル操作Macターミナルを使って、cd Desktopって打ってからecho ohayou > aisatsu.txtって打ってみて、cat aisatsu.txtってやる。そうすると何が表示されるのか?とりあえずやってみよう。ここで>は増田の都合上大文字全角にしてるけど、ちゃんと半角にしてね。なんで増田の都合上半角がダメなのか、そのうち想像できるようになろう。(追記 ブコメ指摘感謝

そして、実際にデスクトップを見に行ってみると、aisatsu.txtってファイルがあるはずなんで、開いてみよう。これで何が起こったのか7割くらいはわかるはず。

こういうファイル操作の基本をまず覚えよう。これこそ空気みたいなものから

追記 ここも間が抜けてたけど確かにhogeって何かわからいね。直しました)

次に文字コードバックスラッシュの話。

最近は何も考えなければ文字コードはとりあえずUTF-8でなんとでもなるようになってるけど、バックスラッシュとかは環境設定で出てくるように設定しないと出てこないし、その意味合い、つまりエスケープとしての使い方を頭に入れておくと後々困らないと思う。あとEOF(エンドオブファイル)とか改行コードとかもそういうものがあるよ程度には覚えておこう。これ頭の片隅にはいってないと分からん殺し的な罠にはまることがある。

次にプログラミング環境の構築の仕方。

これは使いたいプログラミング言語公式サイトに行くと大抵書いてある。

でもMacだとだいぶ楽。とりあえずターミナルからgccって打ってみるとなんかCUIツールとか書いてあるものインストールしろって言われるのでインストールする。これだけでCとかC++とかRubyとかPythonとか一通り使えるようになる。もしかしたら最近はこのインストールすらいらないかもしれないけど。

あと、シェルコマンドとかプログラミング言語を実際に使うときはいろんなライブラリインストールする必要があるけど、そのライブラリ管理がすごく面倒なので管理をまとめてくれるコマンドがあったりする。aptとかhomebrewとかがそういうのだから、そんなものの使い方も覚えておこう。

追記 言語文法を追うだけなら環境構築なんてしなくてCloud9とか使ってもいいかもだけど、プロダクトを作ろうとした時にはまだまだ手元で環境作って必要ライブラリを入れてとやった方が後々応用がきくと思うのですよ。それにそうしていくとDockerの有り難みなんかも理解できるようになっていくのではと思います

最初勉強するプログラミング言語は、Javaだけはやめておけ。

なんでかっていうと、Javaオブジェクト指向言語ってやつなんだけどオブジェクト指向的にしか書けないから。古い人間だと言われそうだけど、最初手続き型言語から始めるべきだと思ってる。少なくとも、手続き型的に書ける言語から始めるべき。

なぜそう思うのかも含めて、とりあえずおばさんが理解しているプログラミング言語の発展の経緯を軽く解説する。

最初の頃のプログラミング言語は、手続き型と呼ばれるものが多かった。

この〇〇型ってのはプログラミングをするときの考え方によって名前がついているんだけど、手続き型はまず0を作って、0に1を100回足して、最後にその結果を表示してください、みたいな、上から書いた順番通りに動くのが基本のルールである考え方。プログラムは基本的にはこうやってデータアルゴリズムを使って変化させていって望む結果を得ている。でもこのやり方は問題も多かった。プログラム全体がひとかたまりになってしまっているので、数千行とかになるともう普通の人では手がつけられないし、人間ミスデータを間違って扱ってしまうことがバグの温床になった。

なので、この手続き型の考えに構造化という考えが加わって、関数というものが生まれた。関数っていうのは料理レシピに例えるとわかりやすいかも。

関数が無い状態だと、

1:玉ねぎをくし状に切ります

2:キャベツをざく切りにします。

3:豚こまに塩胡椒で味付けをします。

4:フライパンを火にかけ、油を入れて熱します。

5:豚こまを入れて色が変わるまで炒めます

6:玉ねぎを入れます

7:キャベツを入れます

8:野菜がしんなりするまで炒めます

9:火を消して8をお皿に盛り、野菜炒めの出来上がりです。

と書いていたものが、関数がある状態だと、

A:野菜を切ります

Aのやり方1:玉ねぎをくし状に切ります

Aのやり方2:キャベツをざく切りにします。

B:肉に味付けをします。

Bのやり方1:豚こまに塩胡椒を振ります

1:フライパンを火にかけ、油を入れて熱します。

2:Bを入れて色が変わるまで炒めます

3:Aを入れてしんなりするまで炒めます

4:火を消して3をお皿に盛り、野菜炒めの出来上がりです。

って書ける。ここではAとBが関数

この程度だとあまり意味を感じないかもしれないけど、これがもっと複雑なもの想像してみると、なんとなくありがたみが分かって来ないだろうか?こうすると、多人数でプログラミングをするときに、Aを書く人、Bを書く人、1〜4にまとめる人って感じで作業分担ができる。それに、バグが起きた時もAの領域バグったのか、Bの領域バグったのかとか、全体にまとめると上手くいかないのかとか、原因の切り分けがやすい。

でも、プログラムがとっても複雑化すると、これでも手に負えなくなる。料理の例えを拡大すると、料理店を運営することを考えるといいかも。

料理店でたくさんの料理をさばくときに、レシピを完全に1から作ることってないと思う。Aさんが野菜の仕込み担当、Bさんがスープの仕込み担当、というように各人に仕事が割り振られているはず。AさんもBさんもそれぞれの仕込みのレシピを持っていて、最終的に出てくる仕込みがちゃんとしてればAさんBさんの仕事の詳細までいちいちシェフが細かくチェックしない体制になっていると思う。大雑把にいうとそういう考え方をプログラムで再現したのがオブジェクト指向言語

なので、本気で料理初心者がいきなり厨房の仕切りを任されて上手くいくのは難しいように、構造プログラミングのありがたみすらわからない段階でオブジェクト指向プログラミングに手をつけても意味わからんだろうと思うのがおばさんの立場です。

追記 おばさんはRubyを勧めておきますオブジェクト指向言語ですが、手続き型的に書き下すことも出来るからです。一つの言語手続き構造オブジェクト指向、全部勉強できますメソッドも便利なのが一通りあるし、日本語を扱うのにも問題が少ないです)

次に問題を分解できるようになろう。

例えば、クイズゲームを作りたいと考えたときクイズゲームを作りたいです、って問題は大きすぎる。

クイズゲーム必要な要素は、問題文を表示する、回答を入力してもらう、正誤判定をする、正誤判定の結果を表示する、ということだなぐらいにまず分解する。

これを実際にプログラミングしようとすると、もっと分解できてさら問題が見えてくると思う。

コンピュータってのは創造的なことはできない代わりに、とても簡単なことをとても階層的に重ね合わせて大きな問題を解けるように作られてる。それを心するといいと思う。

からないことは調べられるようになろう。最後はこれ。

これ超大事プログラミングって本当に自分で1からものを考えなきゃいけないことってあまりない。大きな問題あなただけの問題かもしれないけれど、それを構成する小さな問題は大抵他の誰かが解いている問題なので、調べてみれば答えが見つかると思う。

エラーメッセージが出てきたらまずググってみる。翻訳しても初心者には意味がわからないし、ググったら誰かが解説付きで紹介してくれているのでその解説を読んだりしながらエラーメッセージとの付き合い方を覚えていけばいい。

メソッドの使い方がわからなかったら言語公式サイトに行ってみる。メソッドの使い方で大事なのは呼び出し方、返ってくる値の型とかそういうのだから、こういうところはググるよりも公式サイトに書いてあることをしっかり読んで理解する。

あと、アルゴリズム勉強もしてみるといいと思う。アルゴリズムデータ構造計算量の勉強大学学部レベル教科書ちゃんと読んでみると、例えばデータベースを操作するSQLというものを書くことになった時とかに効いてくる。あとは作ったプログラムが遅すぎてどうしようとかいうのを解決する時とか。

なんか深夜までいろいろ書いてしまったけど、あくまでもプログラマじゃないおばさんが書いたものなので、みんなでツッコミとか入れてくれると大変助かります

増田怖いよツッコミ怖いよ、もちろんおまんじゅうも怖い。

2019-03-12

anond:20190312212513

C言語

半世紀以上前からある言語

ほとんどの言語C言語文法を参考にして作られているくらい多大な影響を与えた凄い言語

C++

Cを滅茶苦茶拡張した言語

拡張しすぎたせいで全容を知っている開発者ほとんどいない

C#

MSJavaっぽい言語が欲しくて作ったJavaもどきだったけど

今はこっちの方が言語として洗練されている

Objective-C

C++のようにC言語拡張した言語

ただし名前が示すとおりオブジェクト指向に特化した拡張

ジョブズお気に入り言語で専らMaciOS用言語だったが最近Appleが開発した後継的存在であるSwiftに移行しつつある

2019-03-02

オブジェクト指向.vs.関数型プログラミング

みたいな論争をしたがる人がいるけどPGの98%はどちらも理解できないから、めちゃくちゃ無駄だよな。

2019-02-13

http://javablack.hatenablog.com/entry/20180827/p1

この人はオブジェクト指向親でも殺されたのか?

さんざんあれは悪書だ、これは悪書だ、と言っておきながら

「その分野のことを知らない初学者には,とりあえずオライリーとか.ヘネパタとかK&Rとかオススメ.」

かいってるあたり何もわかってなさそうなんだけど。オライリーって本はないしヘネパタは初学者向けじゃないし(パタヘネのこと?いずれにせよ初学者向けじゃない)、K&Rは学習という意味ではクソ以下の価値しかない(歴史的価値はおおきいが)。

ていうかプログラミングって工学ではありえても理学にはなりえないので、もういろいろと初手からダメなんじゃないかと。視野狭くなってません?

(ところで増田って & って書くと展開されるんだっけ?)

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