「node.js」を含む日記 RSS

はてなキーワード: node.jsとは

2022-10-23

anond:20221022212119

jsフレームワークはだいたい数ヶ月で使い捨て

技術が蓄積されないか技術改編が全然進まない

ようやっとnode.jsが落ち着いた程度

2022-10-13

anond:20221013145402

ほいノ

学歴

中学ん時の偏差値は60くらい。

高専行こうと思えば行けたんだけど、実家離れるの怖くて偏差値45の工業高校へ。

もう全然馴染めなくてさっさと中退

17歳までニート

18歳までフリーター

18歳〜21歳まで定時制に通った。

英語個人的にそこそこ勉強したけど、数学なんかはⅠの後のAが半分も終わらなかったレベルバカ校。

大検で足りない単位取って3年で卒業した。

職歴

21歳〜24歳まで契約社員

この時期は暇で、なぜかやる気に満ち溢れてたから、TOEIC700近くとか日商簿記2級とか色々資格を取った。

24歳でうつになって、30歳くらいまで日雇い派遣無職を半々くらいでリピートしてた。

30歳で製造業正社員になった。

これが人生初めての正社員だった。

やってる仕事は大したことなかったけど、幸い仕事中にPCをめちゃくちゃ使うのでやりたい放題だった。

この時にプログラミングを始めた。

33歳で正社員社内SE転職

年収めっちゃ下がった。

34歳でWebスタートアップ転職

ここで年収どんどん上がった。

36歳でうつが再発して辞めて今に至る。

プログラミング遍歴

略歴・技術スタック

基本は、仕事で使えそうなもの必要ものをその都度吸収していった感じ。

Webが中心ではあるけど、組み込みとかのハードが絡む分野以外は結果的に広く浅く手を出してる、つもり。

言語的なやーつ
Excel VBA 1年
VB.NET半年
JavaScriptNode.js 4年
HTML 1年
SQL 4年
GAS 3年
C# 1年半
TypeScript 2年
Java半年
C++半年
ラダーFB三菱シーメンス 1年

実務経験があるって胸張って言えるのはこれくらい。

大体習得順。

他には、Python、Julia、R、Fortran、Rust、GoDart、Shell、Deno、CSSなんかは少しずつかじってる。

最近Webに関してはほとんどJSTS)で済む感じになったので楽。

なんでPLC最後やねんってツッコミは置いといて、Web系寄りでラダーも触ってるって人は観測範囲ではあんまりいないので、それが俺の数少ない強み。

それ以外のなんかなやーつ

RDBPostgreSQLSQL Server、MySQLSQLiteの順で実務経験あり。

NoSQLはFirestoreが実務経験あり、実務なしだとNeo4jとか。

PaaSGCP(Firebase)、AWSの順で実務経験あり。AzureADVM周りをちょっと触った程度。

Dockerはよく使うけどKubernetesとかまでは行ってない。

後は産業用の通信プロトコル的なやつを無駄に色々触ってる。Modbus TCPとかORiNとかCC-Linkとか。PLCもそうだけど、あの辺は日本ドイツアメリカが未だに既得権益で幅利かせててまじで闇深い。その代わりそれをブレイクスルーできればめっちゃ稼げる分野だと思う。

閑話休題

俺のキャリア形成方法と、簡単アドバイス

まずはカイゼンをしよう

フリーターでどんな仕事してるか知らないけど、仕事で一日の半分が無くなっちゃうじゃん?

から、その時間をまず有効に使う。

以下、俺の場合ね。

次長クラスの人が「この製造番号でクレームがあったんだけど、作業当時どんなことあったか覚えてない?」みたいなことをわざわざ現場まで何度も聞きに来るんだよ。

作業したのなんて半年前だったりするから一々覚えてないっすよ、って言ってるのに何度も聞きに来るからイラッとして仕事用のPC勝手Excel業務日報を付けるようにして、イントラファイルサーバーに置いて「そういう時はこれ見て下さい。次長の貴重な時間が勿体ないです」って言ったのよ。

それだけでめちゃくちゃ喜ばれる。

で、今度はその次長が「この製造番号どれくらいの時間作業終わった?」みたいなことを現場までわざわざ何度も聞きに来るから、俺はその時またイラッとして、Excelストップウォッチもどき作って製造番号とか工程ごとに時間計測して記録して、やっぱりファイルサーバーに置いて「これ見て下さい」って言ったのよ。

それでまた、めちゃくちゃ喜ばれる。

俺のプログラミングの始まりは、ひたすらそれの繰り返し。

最初プライベート時間結構使ってやってたんだけど、そういう周りに喜ばれる効率化を繰り返してると、少しずつ業務時間内で自分スキルアップに直結する時間を作れるようになる。

自分でこれ面倒くせーな、効率よくできねえかなって思ったら、じゃあどうやって?てのを考える。

これがカイゼン英語Kaizenって言っても通じる。

ちなみにPCがなくても、たとえばメールアドレスさえあれば今の時代カイゼンはできる。

大きな会社に勤めてるとかだと使うのが難しいんだけど、IFTTTとかが良い例かな。

https://ifttt.com

これはiPaaSっていうサービス一種で、まあ言葉意味は覚えなくて良いんだけど、要は「イベントAが発生したら別のイベントBを起こせ」っていうのを登録して、自動化できるWebサービス

例えば、あなた日雇い会社にいて、毎日違う現場に働きに行くとする。

で、出勤前、現場到着時、勤務終了の時にLINE毎日報告しなきゃいけないとする。

で、その報告を受けた事務方は、Googleスプレッドシートにその都度入力する。つまり、それだけの為の事務員が一人いる。

面倒くさいし、お金がかかる。

そこで、「特定グループLINEを受信したら(イベントA)、特定Googleスプレッドシート情報を記録せよ(イベントB)」っていうのをIFTTT登録すると、少なくとも事務員入力の手間は省けるってえ寸法だ。

IFTTTはたくさんイベントを処理させたい場合は有料になっちゃうけど、個人で試すぶんにはクレカ登録しなきゃいいだけだから試してみるといいよ。

プログラミングを学ぶならN予備校

月1000円で学べる。コスパは圧倒的。

テキストベースだけど、Web講義とかチャット質問できる。

入門コース学習に180時間と公称してる)がしっかり理解できていれば、Webで大抵のものは作れる。

ただし、大筋は問題ないんだけど、細かい部分で最新技術キャッチアップできてない可能性があるので、そこは注意した方が良いかも。

https://www.nnn.ed.nico/pages/programming/

安定志向なら中小企業社内SE転職する

N予備校の入門コース終わらせたら、基本情報技術者応用情報技術者を取る。

そしたら、職歴書の作り方次第で中小企業社内SEにはまず転職できる。

中小企業社内SEは、ITリテラシーの低い社員が多い中で「Excelセルの色が変わらなくなっちゃったんだけど!」とか「複合機が紙詰まりって言ってるけどその紙が見つからない!」とかクソイージークエストをこなすだけでおちんぎんが貰える、人によっては天国、人によっては地獄のような職業だ。

ごめん、流石に言い過ぎた。実情は色々と面倒くさい。DXとかバズワードを聞きかじったクソ重役から突然言い渡される重めのミッションとか。

けど安定なのは間違いない。

上昇志向なら中小製造業生産技術転職する

N予備校の入門コース終わらせたら、基本情報技術者応用情報技術者を取る。ここは社内SEと同じ。

生産技術ってのは、誤解を恐れずにすげえ簡単に言えば、カイゼンばっかりやってる人たちのことだ。

あんまり詳しくは言えないんだけど、俺が最後にやっていた仕事は言わば生産技術だった。

で、中小企業生産技術は、Webに強い人材をかなり欲しがっている。有り体に言うとIoTとかね。

IoT最近セキュリティの強化がかなりクローズアップされていて、そのせいで二の足を踏んでる企業が多い。

そこに滑り込むのはアリだと思う。

まとめ

よく「T型人材」って言われ方をするけど、どっちのスペシャリストの言うこともある程度分かる「橋渡し」的な人材になると途端に貴重になって需要が増すので、上昇志向があるなら「Web+何か」の組み合わせでお金稼ぐのが良いんじゃないかな。

ま、橋渡しって自然プロマネとか任されがちで、裁量大きくて大変なんだけどね。

質問あればどうぞ。頑張って。

2022-09-05

anond:20220905000135

React.jsを使うと、Node.js学習って無駄になるんでしょうか?

例えば、何か新しい機能を追加したい、となったらNodeのライブラリじゃなくて、reactのライブラリを使いますよね? もしくは普通にJSで書くとか(?)

無駄にはなりません。

まず、「Node.js、Deno」はサーバー・サイドJavaScript、「React」はクライアント・サイドJavaScript(つまりブラウザ側)なので、役割分担が違います

ただし日本プロ世界では「Node.js、Deno」はイマイチ人気は無いので、プロを目指すなら無駄になるでしょう。

Next.jsを使うと、react.jsライブラリは使えないから、reactの学習無駄になりますよね?

そうですが、Next.jsは人気は無いので、Reactを強く推奨します。

Google Trendsは、あくまでもキーワードの人気度であり、本体の人気度ではありませんが、人々の関心度と考えて良いでしょう。

https://trends.google.co.jp/trends/explore?date=2013-06-01%202022-06-01&q=jQuery,React,Vue,Angular

これを見ると現状ではReactが世界的なデファクトスタンダードです。

React.jsを使うと、Node.js学習って無駄になるんでしょうか?

例えば、何か新しい機能を追加したい、となったらNodeのライブラリじゃなくて、reactのライブラリを使いますよね? もしくは普通にJSで書くとか(?)

と言うことはなんですが、

Next.jsを使うと、react.jsライブラリは使えないから、reactの学習無駄になりますよね?

結局、Next.jsJS勉強だけするのが効率がいいんでしょうか?

2022-08-11

anond:20220811213201

node.jsやってるけどjavascriptと同じように書いて動くのでどのあたりが難しいかわからんし素のjavascriptと何が違うのかもわからんやで

anond:20220811210947

javascriptフロントエンド言語

サーバサイドにnode.jsというのがあるが、書き方が難しくて初心者向けじゃなくなる。

と思っている。Byプログラムほとんど書くことがないSE

2022-05-30

node.jsって人気ないの?

人気あるってみんないうけど学生の身としては実感がわかないくらいに本が少ない

業界的にはよく使われてるんだろうか

node.jsはいい本がすくなくてどうやって勉強したらいいんだろうって思うことが多い

ガチ向けの本しかない

間がないんだよね

そういう意味python覇権はすごい感じる10年前じゃ考えられない充実度

結局いまはpython勉強している

2022-05-23

anond:20220522231526

その言い方だとなんかサーバーサイドJavaScript=Node.jsを知らなそうに見える。

2022-05-02

プログラミング初心者macがいい理由

ターミナルが基本装備でスムーズに起動できる、エラーもすぐに原因がわかる。これだけ

winでも正規品ならまだいいけど。

winの入った変なパソコン使ってる人はコマンド打つ段階になって内部の構造が違って教科書通りに進まなくなることが多い

最近はもうNode.jsとか開発必須なので。動かせなきゃ話にならない。

2022-04-12

anond:20220412232618

プロダクトの公式ライブラリNode.js だけってのは結構見かける

他はあっても公式じゃなくてサードパーティとして紹介されてたり

そしてサードパーティでもJavaはあまりみない

2022-04-07

れ: node.js呪い

https://d.potato4d.me/entry/20220405-nodejs/

話題になっているけど、本来人類必要なのはクロスプラットフォームな実行環境であってNodeじゃない。

TS流行ったのはJSがクソだから。BabelしなきゃいけないのもJSトランスパイルしなきゃいけないからであって、必要なのはJVMCLRのような言語実行環境

Reactが流行ったのはshadow domだけど、必要なのはDOMじゃなくてちゃんとした「アプリ」開発用のイベントモデルレイアウトマネージャ含むGUI環境

フロント界隈の流行廃りって本質的改善ってよりもほかの良い技術いかブラウザ/Electron等JSエンジンという限られた環境に持ち込んで幸せになるかがメインに見えるので地獄に見える。

アプリ」書くのになんでドキュメント記述用のHTMLに今ものっかってんだよと。

MavenやらGemsができて依存管理楽になったとか、RailsがでたときのようなCoCいねとか開発の考え方を変えるフレームワーク、 rspec/Cucumberがでてテスト最高とか、c10kも怖くない非同期I/Oとか、好きな言語が使えるJVM/CLRそもサーバーならrustでもgoでも好きなものが動くとかとか本来の開発を楽にするという意味ブレークスルーってあんまりみられない気がしている。なんでフロント界隈の新技術ってあんまりわくわくしない。

逆にちゃんとしたクロスプラットフォーム実行環境ブラウザしかないということなんだけど、ブラウザなかなか進化しないし RIAApple 様が切り捨てるからなぁ。

ということですべてはブラウザが悪い。JavaScript 以外がちゃんと動くクロスプラットフォームGUI環境必要。でもプリインでモバイルでも動いてOSから独立して協調して作られていて、Webという既存の大量の資源アクセスやすものは現時点で実質ブラウザ一択。つまりWASM に期待。次にHTMLであるべき文書はともかくSPAなんてもう「アプリ」なんだからHTML手書き文化もうやめてネイティブアプリ並みの GUI 作成環境復権しよう。

するとクライアントでも好きな言語が使える。そして同じ言語がいいとサーバサイドで Node.js を使う必要もなくなりへっぽこプログラマが Node のイベントモデル理解せずに使うこともなくなる。

そしてそれらができたときに Node というか JS/HTML呪いから解放され人類平和が訪れるのだ。君はその後も Node.js を使っても良いし使わなくてもいい。

ま、私はそんなもの作れないのでありものでがんばりますがね。

2022-03-14

Web系の個人開発者』のサーバ構成って結局レガシーな感じになっちゃわない?

契約してる1つのサーバ個人ブログとか昔ながらのBBSとかブラウザゲームとか種類が違うサービスをいくつも運営しているけど、サーバ運用方法が流石にレガシーすぎるからもうちょっとモダンな感じにしたいと思ってる。

でも中々抜け出せない。

まず前提としてAWS,GCP,Azureは高いから使えない、同スペックなら適当VPSの方が圧倒的に安い。

最近流行りのコンテナ構成みたいなのもいくらDockerが昔のVMに比べるとリソース食わないと言っても例えば

「1つのサーバ10個のサービス相乗り運営しなければならない」みたいな場合に1サーバ内で何十コンテナ起動みたいなの運用すると流石に相当重くなっちゃうよなぁ。。。

あとnode.jsとかginみたいに1サービスごとに常駐プロセスが増える技術スタックも多分あんまりよくない、必要ポート管理するのも大変

結局自然と行き着くのは格安VPS借りてLAMP構成作ってVirtualHostで相乗り設定して昔ながらの方法運用する方法なっちゃ

php+apache構成ならアクセスの少ないサービスを何十個運用しようとアクセスがないならそれにリソース食われることがないんだよね、何気にLAMP環境結構な強みだと思う

もっと良い方法見つけたいし、多分お金かければあるんだろうけど

月2000円以内くらいで多くのサービス運用したいってなった場合に結局これ以外の選択肢ってなくない?

月1~2万円みたいな額はインフラエンジニア雇う費用に比べると全然安いんだろうけど、ポケットマネー基準だとそうもいかない

もうちょっとマシな方法があるなら教えてほしいんだけど、まあないよなぁ……

2022-02-15

macOSBSDではない話

少し前にmacOSLinuxではないとTwitter話題になりました。その際に

macOSBSD

といった内容のTweetを見かけたのですが「元になったのはBSDではなくMachなんだけどな~。昔を懐かしみつつ、調べながら何か書くか」と思いつつ、面倒になったので記憶のまま適当に書くことにしました。

Unix
ベル研究所で開発されたOS
BSD
カリフォルニア大学バークレー校Unixを改良したOS
Mach
カーネギーメロン大学で開発されたOSで、BSD互換機能の開発のためBSDソースコードを流用しています
NeXTSTEP
NeXT社によりMach独自UI実装して開発されました
macOS
NeXTSTEPをもとにUI一新しました
FreeBSD
カリフォルニア大学でのBSDの開発が終了した後、それを引き継いで開発しているOS
MachBSD

Machは当時一世を風靡していたマイクロカーネル設計採用したOSで、BSDとは全く違うOSです。

ただしBSD互換機能を利用していたユーザーは、内部に関心が無ければ

といった印象を持っていたのではないでしょうか。互換機能としては成功なのですが。

macOSMachなのか

Mach1990年代研究プロジェクトが終了しています

macOSのもとになったNeXTSTEPMachを改造して始まりましたが、現在では別物であると考えるべきです。

macOSBSD

macOSは直接にはMachから派生したもので、BSDではありません。ただし

など、BSDと誤解させる点があるのは確かです。

Linux

Linus氏が実装したOSです。

上記UnixBSDMachNeXTSTEPmacOSではソースコードを利用しながらOSを作って行ったため共通の部分がありますが、これらとは全く関係無く独立して開発されたものです。

しかし現状ではNode.jsPythonなどでプログラムを作ろうとした場合シェルで使うコマンドmacOSLinuxでは共通するものも多く

macOSUnixシェルの使い方を覚えた後にAWSVMログインするようになった

というユーザーmacOSLinuxが似ていると認識してしまうのは仕方がないところではあります

2022-01-23

anond:20220123085544

自分HTMLCSSだけの知識でとまってて最近フロント作ろうとしたら若者からやれフレームワークだとかNode.jsだとかいわれてフリーズした

でも40すぎると学習投資しても回収期間が短いか投資する気になれないんだよな

2021-11-22

今更の話なんだけど、

日見つけたいくつかのGitHubリポジトリ面白く眺めてる

20代フランス人だったり、40代ブラジル人だったり、色々である

ブラジル人は体力有り余ってるのか、

過去ゲームゼロから車輪の再発明とかしてて面白

自分にはもうそんな体力ない

あと、スターが4みたいな他人ライブラリ使って、

あんたのライブラリでこんなもん作ってみたよ、とかできるの、

SNSとして機能してるなぁ、と思う

Pixivみたいなサービスに例えるなら、

他人作品を使って別の作品を作ったりするわけだけど、

絵だとやりにくいなぁ、と思ったりする

音楽だったらリミックスできるけど

そんな感じで、金にならないコードも、金になるコードも、

GitHubみたいな銭湯というか沼というかに

みんなでブクブク浸かって楽しむみたいな世界は、

いわゆるFacebookMixiと似てくるけど、

似てるようで違うのは、言葉キャッチボールや殴り合いが、

言葉でなくコードになるところである

で、思ったのは、やはりプログラミングというのは、

今の時代はもうコミュニケーションなのだということである

ゲームMMOとかでコミュニケーションツールになった

チャットクライアントと同じである

ネットに繋がっていない環境ゲームに没頭するのではなく、

過去ゲームルール発明だったこととかは古臭いものとなり、

他人とのコミュニケーションが重視されるようになる

端的に言えばリア充世界とも言える

そして、コミュニケーションにおける言葉と同じように、

コード言葉と同じように無償自然と発するものに近づいていく

ここで思うのは、スティーブ・ジョブズがこの世界IBMの、

いわゆる、ソフトハードのおまけ、の世界に戻したことであり、

ビル・ゲイツだったかソフトウェアは無償化していくという予言は当たっていたのだろう

それをマネタイズするには、ApacheWebサービスを立ち上げるみたいな、

いわゆるGNUライセンスであれ、運用サポートではお金が取れるが、

HTTPサーバお金を取るのは難しくなっていく

Node.jsを開発したら、開発者は当たり前だが一番Node.js精通しているわけで、

企業顧客Node.jsサポート有償ですることでマネタイズできる

お金は次のプロジェクトにつぎ込むこともできる

しかし、凡人は、自分のようなパンピーはどうすればいいのか

ソフトウェアは無償化し、コードは会話のように無償で、ライブものになり、

あー、そういう世相を予測して、

先に牛耳っておこうという点でMicrosoftによるGitHub買収は正しかったのである

ソフトウェアがなんでも無償に向かうのはMSとしても良くは思えない動きだったはずだが、

今はまったく反対方向にMSは向かっており、収益の基盤をAzureなどに移している

今すぐはありえないが、WindowsというOS意味はなくなっていく

OSは単にネットに繋がるためとか、透明な存在になっていく

これはAppleGoogleのような企業でも同じ考えのように思う

もちろん、そのレベルでのシェア争いや小競り合いが今すぐ消えてなくなるわけではないが、

長い目で見ればいつかはそうなっていくことは容易に予想できるわけで、

まりソフトウェア産業というか、近年のバズワードでもあるテック産業というのは、

これはこれでもう斜陽なのだということである

そんなこと言うなら、誰の人生だって同じである

人生だって、みんな崖に向かって歩いたり、走ったりしてるだけである

その崖がどれだけ近いかいかとか、どれぐらいのスピードで崖に向かってるかとか、

それだけの違いであって、誰もがいつかは崖に到達して落ちる、つまり死ぬである

その死のときまで、せいぜい人生を楽しめということである

ソフトウェアが無償化し、あらゆる情報無償化し、

みんなで銭湯に浸かってるような世界楽しい

しかし、そこには一発逆転や一人勝ちするチャンスも乏しくなり、

そういった金を求めるギラギラしたアブラギッシュは寧ろ嫌悪される存在となり、

しかし、そうやってった末に待っているのはコモディティ化であり、

ただの暇つぶしにさえなっていく

今は楽しい

でも、その楽しさの果てに死が待っている

2021-11-05

うPythonは終わりました

なんか今頃になってPython学習コンテンツが充実してきてるけど

Pythonってもう旬を過ぎたと思うんだよな

AIとかディープラーニングが全盛期の数年前とかだったら

tensorflowとかsklearnとか使うためにPythonは凄く有用だったしこぞって使ってた

まぁそれでもPandasはクソだったけど他に選択肢もなかった

あと、AIみたいにサービス化とかUIを気にしなくて良いようなワンショットプログラミングには向いてた

型付けとかしなくていいし、少しぐらいメモリリークしてても気にしないし、UIはtensorboardとかグラフpngで吐き出せば良かった

何よりターミナルから打ち込んだら実行してくれたりMarkdownファイルの中に書いたら実行してくれたりそれはまぁ便利だった

ところがAIコモディティ化して頭打ちも見え始めてきた段階でそろそろビジネス化しないといけないけど

そうなるとPythonみたいなやんちゃ言語プロダクトレベルまで実装出来る人が少ないことに気づき始めた

UI作るの面倒だし、型チェックとかもやってくれないから想定してないバグが出たり

Pythonを凄いやってた人も「プロダクトレベルとなるとちょっと」っていう人が増えてきた

かといってJavaには戻りたくないってなってTypeScript流行り始めた

そもそも最終のUIWebだし、jQueryから始まったReact/Vue/Angularあたりはどれを使っても簡単UIを作れる

おまけに枯れたNode.jsサーバレスに実行できる環境であるからTypeScript流行りまくってるんだと思う

Web系の弱いところはスマホアプリで、WPAあるけどイマイチ流行ってないしAppleが乗り気じゃ無いのがなんとも

なのでflutterあたりが人気出てくるかなぁ、とは思うけどWeb系ほど選択肢が無いから合わない時にとことん合わないと思う

ここから数年はPython人気が落ちてきて、TypeScriptが伸びて、Dartじわじわ伸びてくるんじゃないかなぁ

学者Python、とか言うけど関係なくTypeScriptやった方がいいと思う

2021-10-27

anond:20211027152420

スキルというか"プログラミング"についての理解が足りてないだけだと。

適材適所スキルレベルも含めて、そのとき一番"自分に"いい(楽とかスキルアップ)と思うものを選べばいいのでは?

例えば動画編集していてDaVinciと他のソフト連携したいなと思っても、そういうのはググっても出てこない。

Photoshopプラグインとして機械学習を使ったものを入れたいと思っても、ググっても出てこない。

なければ自分でやる。そもそも連携可能でなければ出てこないし、労力に見合わなければやらない。

Pythonからエクセルを動かすのは、試してみたが、VBAマクロの方が楽に感じる。操作を記録する機能はあるし、そこから不要部分削ったりすればよく、Pythonエクセル動かそうとすると読みにくいし何やってるか結局わからない。

汎用型か、特化型か。Pythonで楽になるならVBAマクロはいらない。汎用性無双ならアセンブラ機械語プログラミング言語は止まってる。

プログラマーの人はエクセルなどを嫌うけれど、matplotlibを細かい調整しようとすると調べて描画し直してを繰り返さないとならず、GUIポチポチ調整する方が楽に感じてしまう。

エクセル含め便利なツールはがっつり使う。楽だからエクセルで辛くなったら、GUI=>VBAマクロ=>自作ツールGUIで楽なら無駄自作ツールなんか作らない。楽になりたい時だけ

個人GUIを作るとして、ボタンやプルダウンは簡単だけど、マウスを使ってインタラクティブになるとググってもすぐ出てこない。

Python使いじゃないのでなんともだけど、PythonオンリーならDjangoとか?

PythonGUIが得意な印象がないので、自分ならJS(TS)+Pythonで。Python部分は必要最小限にして、Node.jsで呼び出しか、ReactでAPIコール

2021-09-25

オブジェクト指向はすでに粒度時代にあっていない」を読んで

記事

@kis (id:nowokay) さんの以下の記事についてです。

https://nowokay.hatenablog.com/entry/2021/09/25/042831

ブコメにもあるようにちょっと内容が雑というかわかりにくいせいで賛否両論になってしまっていて、もしかしたら近いうちにアンサー記事が出るかもしれませんが、自分自身理解を助けるためにも言わんとしていることを推測しつつ、自分認識もまとめておこうと思い書くことにしました。明らかに誤読してそうな箇所があれば、指摘してください。

前提

まずは前提を書いておかないと論点がぼやけると思うのでいちおう。

自分バックグラウンドは以下:

その他の前提:


本文およびブコメを読んで思ったこ

2000年代に入って関数型プログラミングが脚光を浴び始めたのは、コンピュータ資源が潤沢になりパフォーマンスをそれほど気にしなくってよくなったことが大きな理由ではないか、という認識があります

関数型プログラミング言語の内部実装を読んだことがないので推測ですが、データを不変にするということはその都度メモリ領域を新たに割り当てることになり、そのオーバーヘッドプログラムパフォーマンスに影響を与えるので、パフォーマンス要件がをシビア場合、どうしてもメモリ割り当てや計算効率を考えるとミュータブルにせざるをえないと思います。が、ウェブアプリケーションに限っていえば、データベースアクセスネットワークアクセスレイテンシが大きいので、そうした相対的に細かいオーバーヘッド無視しても(大抵の場合は)問題にならなくなった、というのが「時代」の流れなんだという認識です。

いっぽうで別の観点もあって、REST API や FaaS が一般化して、関数単位で処理を分割し、アプリケーション外部に配置することが当たり前になってきた現状があり、マイクロサービスのようにアプリケーション自体モジュールの一単位として考えると、アプリケーション内部のモジュール同士でも関数ベースでやりとりする形になっても不自然ではないと考えられます

記事にもありますが、RPC派生実装?)として生まれJava の CORBA や MicrosoftDCOM みたいな振る舞い付きのオブジェクトコンポーネント)を共有しようという世界観は廃れ、REST API のような単一の振る舞い(エンドポイント)とそれにひもづく JSON のようなデータ構造のみを受け渡すやり方が一般的になったアプリケーション通信の潮流と、計算資源が潤沢になって再度脚光を浴びた関数型プログラミングが、レイヤーの違いを飛び越えてひとつになろうとしているのではないか、と。

まり、元記事に書かれている「時代に合ってない」というのは、「データ構造と振る舞いが一体となったオブジェクト」のような「なにか」は、そうした背景があるために、どこにも存在する必要がなくなってきているのではないか、と解釈しました。

なので、以下のコメントちょっと論点がずれてると思いました。

はあ?「再利用する方法としてはWeb APIが主流」って、その中身をオブジェクト指向設計することは、全く矛盾しません。 部品化の単位は、慣習や柵などで大きく変わりますオブジェクト指向とはほぼ無関係です。

https://b.hatena.ne.jp/entry/4708813645995359202/comment/suikyojin

なんでサービスとして外とやり取りする話とサービスの内部設計の話をごっちゃにしてんだ。なんか理解度が怪しくない

https://b.hatena.ne.jp/entry/4708813645995359202/comment/ssssschang

しかに、アプリケーション単位アプリケーション内部のモジュール単位とでその表現形式を合わせる必要はないんですが、元記事の言わんとしていることはこの一文に端的に表れていると思います

ソフトウェア記述をまとめるという視点では主にステートレス関数を分類できれば充分で、データと振る舞いをまとめたオブジェクトというのは大きすぎる、システムを分割して管理やすくするという視点ではオブジェクトというのはライフサイクルリソース管理視点が足りず小さすぎる、ということで、オブジェクト指向粒度でのソフトウェア管理は出番がなくなっているのではないか、と思います

個人的にわからなかったのは以下の部分です。

オブジェクト指向でなぜつくるのか」という本がありますが、「え、いまどきオブジェクト指向でつくらなくない?」っていつも思います。内容的には、もうほとんどはオブジェクト指向関係ないソフトウェア工学の紹介になっていますね。

当該書籍は読んだので後半はまぁわかるんですが、前半は「え、いまでもオブジェクト指向でつくるのが主流じゃないの?」って思ってしまますオブジェクト指向定義が「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェア組織化すること」なのであれば)。

おわりに

Joe Armstrong が "Why OO Sucks" を書いたのが2000年とのことなのですが、そろそろこうした議論収束に向かってほしいと個人的には思います(とっくに収束していると感じている方もいらっしゃるでしょうけど)。

https://gist.github.com/posaunehm/4087971

2021-09-03

anond:20210903102137

Node.js専門のサーバサイドエンジニア、何も間違ってないし、お前のほうが馬鹿にされるやつだから増田で聞いてみたのは正解だ。

2021-08-31

Node.js ってフロントエンド開発するときの道具であんなのガチで本番使う馬鹿いないよな?

JavaScript だぜ?

バックエンドに、こんないい加減言語なんか使えんだろ

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