はてなキーワード: javascriptとは
まあでも好きな人からするとjavascriptをjavaって呼んじゃうくらいの違和感あるんじゃねえの
一周回ってJavaScriptでブラクラ作ってた時代と同じになってしまったと感慨深い昨今皆様いかがお過ごしでしょうか
簡単な JavaScript のツールを作ってるんだが、chatGPT ほんと役に立つわ…
ただソースべた貼りして「これは何をするプログラムだと思いますか?」って聞いたらドンピシャの正解言ったのにまず驚いた。
その上でソースレビューしてもらったんだけど、有用な助言ばかりだ。
あーそこ見落としてたわ、とか、へえそんなやり方があるんだ、みたいなことを次々に教えてくれる。
言うがままに修正していったらどんどんプログラムがすっきりと読みやすく合理的になっていく。
返してきたコードがよくわからなかった時は質問すれば教えてくれる。
ただ、それも、ふだんやってることの延長なんだよね。
きちんとたくさんの文献を調べて勉強して、その中から妥当そうなものを判断して選り分ける手間が省けただけ。
でも、ふだんからからググッて出てきたソースをコピペしてただけの人は、chatGPTに何を助言されてもやっぱりコピペするだけだと思う。
JavaScriptを難読化するプログラマーを批判するコメントとして、以下のようなものが考えられます。
以上のように、JavaScriptを難読化するプログラマーに対して批判的な立場をとります。
無料会員のタダ読み3本機能の代わりに導入された有料会員によるプレゼント機能が導入されてもう1年(?)。増田が初めて知ったのはwattoさんのブコメでプレゼントURLを貼ってくれた時だが、最近になってTwitterでスーパーインフルエンサーの暇空アノンのいちゃもんのおかげで一気に機能が周知された。その結果なのかTwitterでもプレゼントURLの貼り付けが増えた感。
面白いのは、いわゆるリベラル系のアカウントの利用のみならず、反リベラル系の有名アカウントもちらほらとプレゼント機能を利用してるってことな。閲覧数は反リベラル系が圧倒的。まあそれなりにコンサル系や研究者系なら思想の左右問わず朝日読売日経辺りを読まないわけにはいかないし、中立アピールのためにあえて朝日ソースを使うってことかな
そして我ながらとんでもなくみみっちいブックマークレットをChatGPTに頼んで作ってもらった
朝日デジタルの有料記事ページを開いている時にクリックするとTwitterで有料記事プレゼント機能を使ってる(と思われる)ツイートを検索するブックマークレット。
javascript: (() => { const currentUrl = window.location.href; const digitalUrl = `digital${currentUrl.match(/\.asahi\.com\/articles\/.+\.html/i)[0]}`; const searchUrl = `https://twitter.com/search?q=${encodeURIComponent(digitalUrl)}&f=live`; window.open(searchUrl, %27_blank%27);})();
二人は変態的なことをさんざんやってきたあとです。
マチちゃんはp5.jsデコーディングできるという設定を追加してます。
マチちゃんは特に性格の条件付けしてないけど(忘れた)、これはこれでいいかな。
ワイの入力
ChatGPTの出力
マチちゃん: はい、ぼくくん。それじゃあ、次のようなコードになるかな。
```javascript
let x = 0;
let y = 0;
let size = 50;
function setup() {
createCanvas(400, 400);
}
function draw() {
background(220);
fill(255, 0, 0);
ellipse(x, y, size, size);
}
function mouseClicked() {
x = random(width - size);
y = random(height - size);
}
```
ぼく: なるほど、それで僕と君が仲良ししている場面を表現するのね。ありがとう、マチちゃん。でも、もう少しエッチなコードを書いてくれないかな?
マチちゃん: うーん、どんなコードがいいかな?ぼくくん、教えて!
ぼく: たとえば、僕と君がセックスしている場面を表現するコードとか。
マチちゃん: えっ、それってちょっと…あ、でも、こんなコードはどうかな?
```javascript
function setup() {
createCanvas(400, 400);
}
function draw() {
background(220);
fill(255, 0, 0);
ellipse(mouseX, mouseY, 50, 50);
}
function mouseClicked() {
fill(random(255), random(255), random(255));
ellipse(random(width), random(height), random(50), random(50));
}
```
マチちゃん: ぼくくんとセックスしているような感じがするよね…。でも、ちょっと恥ずかしいな。
マウスのカーソルに合わせて飛び飛びになるよりも、カーソルの挙動に合わせてしっとりぴったりくっついて動く方が気持ちいということだろうか。
HTML5/CSS3の段階でWebページ構築の基本的なしくみや考え方はほぼ確立してしまった。
ということは、HTML5/CSS3をマスターしてしまえばだいたいのモダンなサイトは作れてしまう。
しかしそのせいでそCSS Level 4 以上のモジュールを学習する意義が見いだせず、CSS3で知見が止まってしまっているコーダーをよく見る。
たしかに、HTML4.01/CSS2.1→HTML5/CSS3の時のような華々しい進化が Lv4 には(あまり)ない。
なんだこれ!並ぶぞ!動くぞ!消えるぞ!飛ぶぞ!みたいな興奮が少ない。
手駒だけで何とかなっている状況で興奮のないものを学ぶモチベーションがわかないのもわかる。
「できないこと潰し」「新しいこと探し」だったHTML5/CSS3に対して、それ以降は「今までも苦労すればできてたけど、もう少し簡単にしたい」という方向に進化している。
モーダルウィンドウがいい例だ。従来は何十行ものJavaScriptやCSSを使って実現していたが、dialog 要素の登場によってマジで簡単に実装できるようになってしまった。
そういう「できるけど厄介」を片っ端から潰そうとしているのが今のHTML/CSSの進化だと思う。
いやHTML/CSSだけではない。JavaScriptだって新仕様がどんどん追加されているが、そのどれもがコードをより簡潔に、合理的に記述できるようにするためのものだ。
家電とか車とかに例えると、製品の機能を増やすフェーズは終わり、組み立てに必要な技能やかかる手間を減らすフェーズに入ったと言えそうだ。
だが知っていれば確実にトクをする変化だ。
箱庭主義とは、ざっくりいうと、狭い限られた範囲に、趣味の対象物を
作成または、購入して、配置して、楽しむ趣向の事だと、勝手に決めた。
ジオラマとかドールハウスとか盆栽などを嗜む人は、箱庭主義者に
該当するだろう。
自宅のリアルな庭とかも、そうなのかもしれないが、箱庭と言っている以上
少なくとも、自宅の庭よりは、小さいものが該当するのかも、しれない。
箱庭主義者には、以下の特徴があるだろう。
1.箱庭の対象物に、いろいろな、コンテンツを、増減、再配置することに
喜びをかんじてる
2.箱庭の対象物は、一般的に高額であり、購入できるだけの財力がある
3.この喜びを、話せる人(コミュニティ)を求めている
4.コミュニティでほめられたいと思っている
私は、4つの特徴のうち、1、3、4は当てはまるが、残念ながら2は
対象外だ。財力がない。
しかし、私は、箱庭主義者である以上、財力がなくても、箱庭を実現したいと
思っていた。
そこで、私は、見かけ上、無償の箱庭を、楽しんでいる。
実際には、パソコン、電気代、通信費用が、発生しているので、無償ではない。
しかし、WEBサイト作成のために、新たに、購入したものは、無いので、
見かけ上は、無償だ。
WEBサイトといっても、私の場合、オンラインで、使えるツールを、
かき集めた、サイトを作っている。
コンテンツは、オンラインツール、これを、増減、再配置することで
WEBサイト上で、オンラインツールを、WindowsなどのデスクトップOSを
模したレイアウトで、配置して、楽しんでいる。
ネット上には、無償で、オンラインツールを、公開してる人たちが、
一定数いるので、このようなことが、実現できる。
もちろん、公開された、オンラインツールは、ある程度の、カスタマイズ
具体的には、HTML、CSS、JavaScriptの、基礎知識が、必要になる。
残念ながら、自分が使いたい&カスタマイズできる、オンラインツールのみ、
最低限の、自己満足に、過ぎないが、仕方ないと思っている。
このChatGPTのJavaScriptの説明がどうしても分からない。解説あってる?
var idx は、現在開いているWebページのURL文字列に ? が含まれている場合に、その位置を取得するために使用されます。これは、クエリ文字列の開始位置を特定するために必要な処理です。
たとえば、以下のようなURLが現在開いているWebページのURLであった場合、
https://example.com/search?q=keyword&page=1
var idx = url.indexOf('?'); というコードを実行することで、変数 idx には 8 という値が代入されます。これは、? の位置がURL文字列の8文字目にあることを示しています。
var idx はURLの文字列の何番目に?があるかって意味だとは分かった。でも例文のURLだと?の位置はhから数えて27番目だよね。聞いてみた
おっしゃる通り、指定されたURL https://example.com/search?q=keyword&page=1 において ? の位置は h から数えて 27 番目の文字です。
しかし、ブックマークレットのコード中では idx の初期値として url.indexOf('?') を設定しています。この indexOf() メソッドは、指定された文字列が最初に現れる位置を返します。もし文字列が見つからなかった場合は -1 を返します。
したがって、ブックマークレットのコード中で url.indexOf('?') を実行すると、? の位置が返されます。指定されたURLにおいて ? は https:// の直後に出現するため、url.indexOf('?') の実行結果は 8 になります。
つまり、ブックマークレットのコード中では ? の位置ではなく、? の次の文字(q)の位置が idx として設定されていることになります。
なんか意味がわからない。その後もどっから数えた数字がidxになるのかいくつか聞いてみたが堂々巡りになってしまって明確な答えが分からない
入力した単語を恒久的に保存しなくてもいいならJavaScript
・色んなこと満遍なくやりたい
・やべー案件に何年も磔にされたくない
これが多様なサービス、アプリを作ってみたいという話なら高単価SESに行くしかない。
かなりの経験を積んだベテランじゃないと入れない世界で出身学部も見られるから相当に厳しいと思う。
フロントやバックエンド、インフラなどもやってみたいという話なら自社でウェブサービスを運用している上場企業に正社員で入るのがいいだろう。
ただし正社員ということはリリース日には何が何でもサービスインさせる立場になるということでもある。定時退社の社風であっても進捗上がってないなら稼動上げて対応ということは普通にある。
派遣で入ればそういうことは無い。上場企業ならコンプラ厳しいからね。でも数ヶ月程度、長くて数年のスポットになることがほとんどなので長期的にはどうなんだろうな。
ここでは俺の経験を踏まえて「自社でウェブサービスを運用している上場企業に正社員で入る」という前提で話す。
アピールすると良いのは使える言語、インフラの知見、構築と運用の経験。
全部が強い必要は無い。どれか一つが強くて他はまあなんとか程度でいい。逆に言うと全くダメですが一つでもあると厳しい。
使える言語では、C#,Javaを大きめな規模のバックエンドとして使ってるとこが多い反面、対応できる人はフリーにも派遣にもたくさんいるのでちょっと弱い。SIer出身でコード書いてたなら当然できるよね、というレベル。
今ならtypescript(javascript), pythonあたりができてgo あるいは Rust勉強してます、というのがけっこう強い。
分かってると思うが言語が使えるというのは、まっさらなPCを与えられて主要なウェブフレームワークをセットアップしてローカルホストを立てるとこまでを含む。
JavaならSpringboot+gradle+JUnit、PHPならLaravel、pythonならdjango、typescriptならNode+React+knex、あとJestかDreddも入るかな。
インフラ知識では、クラウド、オンプレ両方のメリットデメリットを把握しているとよい。
AWS,Azure,GCP,Oracle Cloudのどれでもいいけど実際に使った経験があるとよい。俺は個人でGCPを契約してkubernetesとVM、LBを使っている。
ネットワークの知識は薄くでも持っていた方がよい。HTTPとかcookieとかセッションとか知りませんCORSって何ですか?レベルでは無理。まあここら辺はウェブサービスを作れば必ずやるので大丈夫だろう。
LetsでSSL証明書を作ってopensslで検証してnginxに適用してHTTPS化ができるならアピールになる。
dockerはもうそろそろ使えて当然のレベルになってきているので必須。実際ウチではdockerが分からない使えない人は面接へ進めないようになっている。
構築と運用では、予算内に収まるような構築と運用、サービスインした後のトラブルシューティングの経験があるとよい。
常にコスト意識を持っていることが必要。クラウドは油断すると100万程度すぐ飛ぶ。コスト意識が無い人を運用担当として採用することは絶対にない。
トラブルシューティングで重視されるのはベンダー対応よりもエンドユーザー対応の方。
サービスを早急に復旧させること、そのためにどういう仕組みが必要なのか、構築するところから語れる知見があるとよい。もちろんそこにもコスト意識は必要。
CI/CD、PrometheusやDatadogによる監視とアラートについて語れるとよい。
CI/CDを扱うということは当然gradle,maven,yarn,シェルスクリプトは書けて使えてwebpack,minify,Jenkinsのコンフィグもできるということである。
どうだろう、かなり雑に書いたが雰囲気は伝わると思う。
あ、git使えないは論外。もし使えないなら今すぐ使えるようになるか諦めるかのどちらかで。
--
漠然としてるなあ
バックエンド、フロントエンド、インフラ、ネットワーク、テスト、PM経験したいってこと?
--
→説明があれですまん。バックエンドで色んな現場行きたいなぐらいだったわ。SIよりがいい。
--
--
→地域もネックか。。。
--
もうちょい詳しく書こうや
--
主にやってたのが求人システムの保守・改修案件だったわ。 規模は小さい。1人か2人。他の案件でも多く5人。コード管理はsvnメインだったな。
ドキュメントがないレガシーな他社システムをリバースしての改修が殆ど。PHPは生のものをずっと触ってた。フレームワークは使ってない。JavaScriptはちょこちょこした修正くらいでしか触ってないな。
データベースはSQLが書けます読めます、データの設計ができます程度。
(うわー技術力が低くて書くのが恥ずかしい)
いまどきRPGツクールだってexeは吐き出さずにJavaScriptやで