日記

究極のオブジェクト指向はJavaScript?

1 Mins read

数年前から、Ajaxなどが出てきてJavaScriptをいじる機会が増えてきた。

昔はVBAライクな記述しかしなかったのに、今じゃクラス化しバンバンのオブジェクト思考なScriptが
ちまたに溢れ、拝借して活用させてもらっている。

しかし、この言語は本当に追っかけるのが大変!(苦笑)

C#やJava、C++などはプロパティやメソッドは決まった法則で宣言してから
使用可能になるが、JavaScriptといったら好き勝手に動的に?プロパティやメソッドを追加できるし
prototypeとかいって拡張を促すメソッド(便利なのだが)が初めから存在し
時として永久的に再帰的な動きを繰り返す・・・
(余談、普通は使用しないがC#などもシリアル化した情報からクラスを動的に拡張することも出来る)
(XML通信で、SOAPなどがシリアル化、逆シリアル化の考えで動いている)

また、既存のクラスもこやつのおかげで勝手に拡張されて、知らない間に継承(拡張)されていたりする。
「String.prototype.hoge = function{};」などとして
せめて「partial」するぞ!ってぐらいちゃんと書いてよ(笑)

特に記述方法が宣言もくそもなく、記述した次の瞬間からそのプロパティやメソッドは使えてしまう・・・
もちろん変数に型など指定することはない・・・しまいには文字列すらeval()などでシリアル化から
メソッドなど生成するしまつ・・・

また、確実に「これだ」っていうデバッグ方法が無く最終的にはEdit君とニラメッコしアラートやログ吐きで
匍匐前進するしかないのが、さらに難易度を加速させている。

こやつを使いこなせればオブジェクト思考はマスターか(笑)

でもC++はクラスの多重継承が出来るので、こやつの方が頭痛いかも(苦笑)
基本的にクラスの多重継承は使ってはいけません!!

あ~

Related posts
Windows11パソコンのこと日記

リモートデスクトップ 音が出ない Windows11

1 Mins read
  • 状況
    • リモートデスクトップ接続でリモート側のアプリからホストへ音が出ない場合
    • リモート側のSleep後に音が出なくなった場合
  • 環境
    • host側:Windows11 22H2
    • remote側:Windows11 22H2
  • 対応方法
    • remote側のWindowsの検索で「service」と入力
    • サービスアプリをダブルクリックで起動する
    • 「Windows Audio」というサービスを選択し、右クリックから「サービスの再起動」
日記

Swagger EditerをDockerでローカル起動

1 Mins read

swagger

API開発で設計したDocment管理として使用できサンプルコードとしてJSONにしてくれて、よしなにPostmanみたいな動きしてくれるやつ

最近現場で使っているところが増えてる

ローカルでサーバー起動(例は3つ、外部APIサーバーが3つある場合などなど)

docker pull swaggerapi/swagger-editor
docker run -d -p 8090:8080 swaggerapi/swagger-editor
docker run -d -p 8091:8080 swaggerapi/swagger-editor
docker run -d -p 8092:8080 swaggerapi/swagger-editor

http://localhost:8090 などをブラウザで開き

ソース管理と一緒にリポジトリ内などにあるyamlファイル内容をコピペでブラウザ左Windowへ貼り付け

get、postなどテストをおこなう

※APIなので多少仕様の理解が必要となる

よく一緒に使われるのが OpenAPI

こちらはAPI設計ファイルとなったyamlファイルを読み込ませることにより指定した言語としてI/O部分のソースコードを自動でジェネレートしてくれるツール、ただし良いところばかりではなく、間違ったソースもジェネレートしてくるから地雷除去が必要な場面に出くわすこと多い

 

 

日記

AlmaLinux 8 GPG キー変更の準備をする

1 Mins read

dnfコマンドでエラー

dnf update

AlmaLinux 8 - BaseOS 485 kB/s | 3.4 kB 00:00 
GPG 鍵 0xC21AD6EA をインポート中: 
Userid : "AlmaLinux <packager@almalinux.org>" 
Fingerprint: E53C F5EF 91CE B0AD 1812 ECB8 51D6 647E C21A D6EA 
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux 
これでよろしいですか? [y/N]: y 
鍵のインポートに成功しました 
鍵をインポートしても役に立ちませんでした。鍵が間違っていませんか?

キーが新しくなった

AlmaLinux 8 GPG キーの変更

2024 年 1 月 12 日に、更新された GPG キーを使用して AlmaLinux 8 の RPM パッケージとリポデータへの署名を開始します。以下の手順を実行すると、切り替え後も引き続き問題なくアップデートを受信できるようになります。

システムに新しい AlmaLinux 8 GPG キーが既に含まれており、それを信頼していることを確認したい場合は、それをインポートするだけです。

sudo rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux
チームを強化する

サービスの
サブスクリプションの利点を説明するテキストを追加します。