2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JSの配列操作関数からプログラム"言語"を学んでいると再認識した話

Posted at

業務でGoogleAppsScriptを利用する機会があり、その延長でJavaScriptを勉強しています。
個人の経験としてC、C#、Javaなどは扱ったことがあるのですが、JavaScriptは未経験です。

#配列の操作関数
配列アクセス.png

配列の要素にアクセスする関数を学びました。
簡単に表にまとめましたが、一番右の列に出てくるspliceを覚えると、
その便利さゆえにshiftやpopを使わなくて良いと思うかもしれませんね。

ただ、以下のような懸念があります。

●引数を最後まで読まないと、追加、削除、その両方をやりたいのかわからない。
●何でも出来るがゆえに、引数を間違えると、不具合の元になる。
 →数が増えれば、増えるほどコピペしたくなるし。
●(spliceに限りませんが)便利な関数ということは、入力パターンが増える。
 その分、開発もテストもしっかりしていないといけない。
 →脆弱性が見つかり、別の関数に置き換える必要が出て来た時に、影響範囲が大きくなる。

#プログラム"言語"ということを再認識
逆にshiftやpopを使った場合は、アクセス先が関数から読み取れるので、理解がしやすい。
これって、言葉の概念を学んだことに似ているなと思いました🐊

●概念を知らないと、説明やソースコードが長くなりがち。
●長い説明やソースコードは、"長くても筋が通っていて正確であること"が求められる。これは難しい。
●共通の概念を使うと、理解が速く正確になる。
(もちろん受け手もその概念を理解できないと、読み取るのにコストがかかるソースやドキュメントになる)
●自分が使い慣れた概念が、どこでも、誰とでもベストとは限らない。

いろいろなインプット、アウトプットをしていかないと、当然鍛えられないので、
背筋が伸びる思いでした🐊

#最後に
foreachが出て来た時に、「は?forで十分やんけ🐊」と思ってしまったのはないしょ。。。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?