●世界一分かりやすく「オブジェクト指向言語」を解説。

このエントリーをはてなブックマークに追加



プログラミングは難しいと思われがちですし、実際やったら難しいと思うかも知れません。先ず伝えたいことは、プログラミングを簡単にしましょう。プログラミングのやり易い簡単なところからやれば良いと思います。難しいことは先延ばしにしましょう。もしくは、もうやらないでおきましょう。

理由は、簡単な方が楽しいし、続けることが出来るからです。これは何事にも共通する真理です。頑張って難しいことばかりやらないとダメだと思いながらだと、嫌になって仕方がないのです。最初は難しいことでも、どんどん簡単にしましょう。どんどん単純化(シンプルに)しましょう。そして、どんどん楽をしましょう。それが結果的に周りを幸せにします。

目次

「オブジェクト指向言語」を使う理由

なぜ「オブジェクト指向言語」を使うのか?

楽をするためです。

「オブジェクト指向言語」は、大規模開発のために使うのではありません。楽をするために使うのです。その結果、大規模開発で使われているというだけです。小規模開発であろうと「オブジェクト指向言語」は使います。そもそも、現在「オブジェクト指向言語」以外の言語は、前線に立つ会社では使われていません。「オブジェクト指向言語」が、難しいというのは大きな間違いです。プログラミングが単純になって圧倒的に開発が楽になるので、必ず習得しましょう。

「オブジェクト指向言語」は、アプリ開発において必須です。

話しを戻しますが、楽が出来る理由は、ほとんどの機能がクラスとして部品化されているからです。このため、C言語で苦労して作って覚えたようなソートも、すべて部品化されています。例えば、「配列の逆順走査をしたい」と考えて、10分でプログラムを作ったとしても、配列クラス内に同じことが出来るメソッドがあるので、その10分は無駄です。その10分を他の努力に回せと言いたい訳でもなく、その10分間で他の好きなことをすれば良かったのにと思います。

要は、部品を組み合わせるだけで、中身を理解していなくても、さらにコーディングしなくても良いのです。例えば、高速で動作するクイックソートが使いたい時が多々あります。動作原理を理解していなくても、引数の与え方さえ知っていれば、「.quick()」などでコーディングをせずに呼び出せます。

Kyou no mentai_01_2048x
Kyou no mentai_02_2048x
Kyou no mentai_03_2048x
Kyou no mentai_04_2048x
Kyou no mentai_05_2048x
previous arrow
next arrow

「オブジェクト指向言語」の特徴

これは実際にプログラミングするなかで体験すれば良いことです。深く理解しなくても大丈夫です。ただ、分かりやすい端的、説明を記載しておきます。ざっと読んでみて下さい。

カプセル化

クラス化された部品は、ブラックボックスとして使えるという利点です。また、クラスの作り手からすれば、余計な情報を見せなくても済みます。これはクラスを使う際に余計なことを考えさせないということでも利点になります。

継承

既にあるクラスを引き継いでカスタマイズ出来るという特長です。

ポリモーフィズム

多態性とも言われますが、一つの機能(振る舞い)であらゆる機能を実現させるという特長です。言葉では分かり辛いので、いくつか分かりやすい例を挙げます。例えば、自販機は「お金を払って、品物を得ます。」が、支払うお金は硬貨でも、お札でも構いません。お金を支払う人は、これをわざわざ区別したりせずお金として支払いに使うことが出来ます。これが多態性です。硬貨とお札は厳密に言えば、犬と猫くらい別の種類です。この違いを気にせず同じものとして使うことを出来るのです。

多態性のもう一つの例としては、プログラム上で昇順にしてくれるメソッドがあるとします。ただ、文字、数字で昇順にする処理は、実際には異なります。その際に、多態性の特長を使えば、異なる処理でも一つのメソッドを呼べば良いようにできるようになります。



優先順位を明確にして、少ない努力で、最大の成果を出すこと

もう一つ念押して言っておかないとダメなことがあります。それは目的は成果を出すことです。つまり、アプリを作ることです。「部品化されてるから楽すぎる。」というのを嫌がる人がいます。これは、アプリ開発目線からすれば、かなり遠回りをしています。どんどん楽をして、どんどん前に進むべきです。

例えば、クイックソートというメソッドがすでに用意されているのに、それを自前で作ってそのスキルが良いことだと言う人がいますが、時間の無駄です。僕が一緒に開発していたら、絶対にそういう無駄なことは止めてくれと言います。僕もクイックソートを自前で作れましたが、おそらく、今後作ることはないです。すでに用意されていることに時間を使っても無駄だからです。メソッドを使うだけになり、当時時間をかけて苦労して理解した処理の流れをほとんど忘れてしまいました。

僕の経験上、プログラミングを勉強感覚で進めていると必ず後悔します。

的を絞らずに「あのアルゴリズムが美しい。このアルゴリズムは組んでて楽しい。」など言ってやっていては、いつまで経ってもゴールにたどり着けません。プログラミングは必ず作る物を明確にして、それを目指して作って行く方が成長します。

話しは逸れるかもしれませんが、僕の高校時代にやたら「難しい問題」を解いては自慢げにしている同級生がいました。その同級生は、こともあろうに生物の難問題だけをひたすらにやっていました。悪いことだとは言いませんが、僕はその同級生に学校のテストの点数、成績で絶対に負けませんでした。

必要とされていること、目指すべきことをやることで上達します。

これは余計かもしれませんが、案の定、僕の方が圧倒的に良い大学に入学しました。その同級生がどうなったかは知りませんが、おそらく生物の勉強を熱心には続けてはいないと思います。これも余計なことですが、僕はその同級生が絶対に生物の勉強をやめると思ってましたし、本当に効率の悪い勉強をしているな、と思ってました。これをプログラミングで言えば、求められていることは、Webサービスやアプリを作ることです。仮にこれらを作らないのであれば、プログラミングをやらない方が良いのです。時間を無駄にするだけで、その道に進んでも結局は、劣悪な労働環境、安い給料で中途半端に学歴だけ良いばっかりにプライドだけ高くしたITエンジニアとして、延々としょうもない資料を作成する人生になるからです。

Chairmore_1P_Sofa_MASALA_1100x
Chairmore_HangOut_BF_Directors_Chair_1100x
Chairmore_logo_900x
Chairmore_graf Plankton Table_550x_02
Charmore_GLAM_Working_Dining_Table_4096x
Chairmore_2P_Sofa_VINTO_4096x
previous arrow
next arrow

「オブジェクト指向言語」の学習で必要なこと、不要なこと

プログラミング教育で学習が必須な「オブジェクト指向言語」ですが、必要なこと、不要なことを

編集中



月間10万PVメディア「MOMOHUKU」を支えるツール3選

「MOMOHUKU」"月間10万PVメディア"にまで成長しました。

最近は"DX(デジタルトランスフォーメーション)"が流行りのせいか、、、「MOMOHUKUさんのWebサイトの運営ノウハウを知りたい。」とよく聞かれます。

誰もが知る東証一部の企業からも「コンサルしてほしい」と言われます。

表向きは丁重にお断りしていますが、ITコンサルなんか「ナンセンスなので絶対やらんわ」と内心では思っています。

僕がITコンサルに手を出した時は「よほど、この人はお金に困ってるんだな」と蔑んでみてもらって構いません。

後、ブログ運営に関する記事も書きません。

面倒臭いからです。

今の「DXの流れ」に一言いうなら?

興味ない。勝手にやってろ。

代わりに、このスペースでWebサイトで絶対に活用すべきツールを紹介します。

ここで紹介するツールがなければ、MOMOHUKUは「月間10万PV」にはならなかったと断言します。

ブログ運営に関する記事

貴重な情報を入れて「ブログ運営」に関する記事を過去に書きましたが、どれもアクセスが伸びませんでした。

ブログ運営に関する記事は巷に溢れ過ぎていて読み手からは全部同じ内容に見えるんだと思います。

かなり良い記事でしたが「全て非公開」にしました。

二度と公開しません。

とは言え、WPのエラー対策の記事などは上げています。



ツール①:WordPressテーマ「SWELL」なら「コンテンツ作り」に専念できる。

SWELLを使えば「コンテンツ作り」「3倍」は速くなります。

SWELLを最初から導入しましょう。

僕は「Webサイト運営が軌道に乗ったら」と考えて、100記事くらい書いたのちにSWELLを導入しましたが「最初から導入しておけばよかった」と後悔しました。

余談:Webサイトは「コンテンツファースト」

僕はWebサイトを「コンテンツファースト」で運営しています。

ちなみに「ITの専門知識をできるだけ使わない」ように心がけています。

非ITの人でも「学習コストなく運営できる仕組み」になるからです。

ITの専門知識を使うと"コスト"が発生する

  • コーディングすると"保守"が発生する。
  • 非IT系が一切触れなくなる。
  • 学習コストも発生する。

まぁ、こういう配慮をすると「舐め腐ってくる」のが非IT系ですが。

長い目で見れば「コーディング排除」は組織にとって確実に使い易いシステムになります。

まぁ「舐め腐ってくる非IT系」をきちんとシバき倒して下さい。

ツール②:レンタルサーバー「ConoHa WING」なら5分でWebサイトを構築できる。

「MOMOHUKU」は、レンタルサーバーに「ConoHa WING」を利用しています。

これから自分のオウンドメディアを立ち上げる方は「ConoHa WING」の利用をオススメします。

理由は「ConoHa WING」なら5分でサイトが立ち上がるからです。

余談:ITはシンプルさ、手軽さが正義

「コンテンツファースト」を心がけていると書きました。

同様にITは「シンプルさ、手軽さ」が正義です。

技術を軽視するわけでなく「ITにこだわると面倒臭く」なるだけだからです。

例えば

「WordPressを高速化してくれ」とITエンジニアに相談してみてください。

WordPressをGatsby.jsで静的サイト化すれば爆速化します!なんて言うITエンジニアが絶対にいます。

そのITエンジニアは続けてこう言います。

サイトは爆速化されますが「非IT系」はWebサイトに触れなくなります。

うちは「エンジニアしかいない」から良いんです。

こういう会社は「先祖帰り」したいだけです。

「自分たちにしか出来ない仕事」を増やしたいだけですね。

何より前提である「サイトが爆速化」されると言うのも絶対に達成されません。

僕のサイト「MOMOHUKU」と「Gatsby.jsを一生懸命に導入したWebサイト」でPageSpeed Insights(速度評価を比較)してみれば分かります。

ツール③:WordPressのプラグインは、とりあえず「UpdraftPlus」を入れる。

僕が尽く救われてきたプラグインを一つ上げるなら「UpdraftPlus」です。

「UpdraftPlus」だけで確実に幸せになれます。

しかも、無料です。

本当に申し訳ないことに「無料」で必要十分の機能です。

そろそろ、感謝だけの気持ちで「有料」を購入しようかと思っています。



コメント

コメントする

目次
閉じる