はてなキーワード: VCLとは
Delphiなら開発環境に付属するヘルプがとても充実しているはずだ。
Object Pascalそのものは、これまでのご経験があれば習得に大きな問題はないと思う。
どちらかというとDelphiはVCLというライブラリを使いこなしてこそなのだが、これの説明はヘルプがかなり役に立つ。
実は俺も20年以上前にDelphiの兄弟分であるBorland C++ Builder(BCB)というのを仕事で使っていた。
これもVCLが肝だったのだが、ちょっと慣れたら参考書なんて不要でヘルプでだいたい片が付くようになった。
膨大な内容だが、一度全体を目を通してみるのが良いだろう。
DelphiやBCBのユーザたちはメーリングリストで情報をシェアしあっており、悩み事があればその過去ログがよく検索でヒットして重宝したんだけど今は厳しいね。
メールアドレスが載っているので、自分だったらダメもとで連絡してみる。
こちらに関しては、会社に公式ドキュメントが残っているんじゃないだろうか。
20年前の、紙の資料がそれこそ山のようにあってもおかしくない。
ベテラン先輩に「会社の中にあるUNIFACEの公式ドキュメント全部のありかを教えてください」と言うのだ。
結構ちゃんとしている中小JTCなら、廃棄してないんじゃないかな。
これも出てきた文書すべてにざっと目を通せばとっつきやすさの順番がなんとなくわかるので、その順番どおりにじっくり読んでみるのをお勧めする。
望みはない気はするが、サポート契約してないかも念のため確認してみるといい。
サポート窓口が使えたら随分違うはずだ。
近頃のWeb記事や書籍はよく噛み砕いて初心者にも解りやすく書かれているから、元増田はそういう情報源じゃないと嫌なのかなと感じた。
確かに公式ドキュメントにそうしたフレンドリーさは期待できない。
特に慣れていない分野だったら最初の内は本当に訳わかんなくて読むのが辛いけど、理解できないうちは頑張って三度目を通そう。
眺めているうちに慣れていく。
絶対に助けになるはずだ。
ChatGPT:
はい、Delphi(Object Pascal)のソースも読めますし、解説・リファクタ・バグ箇所の指摘・他言語への移植案など対応できます。
VCL / FMX、Generics、Interface/RTTI、プロパティ/イベント、レコード・セット型、メモリ管理(string/AnsiString/UnicodeString の違い)、スレッド(TThread / TTask)、WinAPI/COM 呼び出し、uses 単位構成、.dfm(フォーム)やリソース周りもOKです。
コードを貼ってくれれば、1ステップずつ説明や改善案を出します(DelphiのバージョンやVCL/FMXも書いてあると精度上がります)。
UNIFACEはどう?
ChatGPT:
はい、UNIFACE(Proc言語)も対応できます。フォーム/サービス/レポート/エンティティなど各コンポーネントのトリガ(initialize, validate, leave field など)、operation/entry、newinstance/activate/call、retrieve/e, read, write、エラー制御($status, $procerror)や論理名・assignment(.asn)、署名/パラメータ、DSP/REST・SOAP連携、DBドライバ設定までOKです。
コードや .asn を貼っていただければ、処理フローの解説、バグ箇所の指摘、リファクタ、他言語・他フレームワークへの移植案(例:REST API化、Java/Python 置き換え)まで具体的にやります。
可能なら UNIFACE のバージョン(9/10/10.4 など)、DB(Oracle/SQL Server 等)、OS を添えてください。
数ある CDN のなかでも Fastly は圧倒的に優れた特性を持つものだと思うので、障害にかこつけてその優れた点を紹介していく。
CDN とは世界各地にあるキャッシュサーバーにコンテンツをキャッシュして配信してもらうことで、オリジンサーバーの負荷を軽減したりユーザーへの配信速度を上げたりするリバースプロキシのホスティングサービスだが、 Fastly の最大の特徴としてはそのキャッシュが消えるのが速い。普通の CDN が数十秒〜数分とかかるのにたいして 0.2 秒で全部消えることが保証されているし、キャッシュにたいしてキーをつけておけば(HTTP ヘッダーに Surrogate-Key って入れるだけ)特定のキーがついているキャッシュだけ 0.2 秒以内に消したりということができる。
これにより、 CDN による配信高速化の恩恵を受けながら、コンテンツをリアルタイムに更新していくことができる。 next.js + vercel などはこのあたりをフロントエンドから CDN まで一気通貫に提供することでリアルタイム風にコンテンツを更新できるように見せかけているが、 Fastly なら本当になにもかもリアルタイムで出来ることが保証されるので、難しいことを考えなくてもよい。
CDN の設定の反映の遅さというのは Cloudfront とか使っていれば感じることだと思うが、 Fastly なら 5 秒ぐらいで反映される。設定を変更しながらいろいろ検証しているときにこれが地味に嬉しい。
ただし上記の特性の代償と言えるのかもしれないが(そうではないのかもしれないけど)、 Fastly は「デカめの配信拠点を比較的少数配置する」という構成になっているため、ディザスタリカバリなどの面では不安がある(今回の障害はマジで全部落ちたのでこれとは関係ない問題だろう)。
Web 設定画面からいじれる設定項目が多く、にもかかわらずユーザーに優しく使いやすい。例えばリクエストヘッダーを Fastly 側で書き換えてもらう機能があるのだが、それとは別に Host ヘッダーのオーバーライドの設定は(えてしてよく使うので)別の画面に切り出されていたりする。
大抵のユーザーは Web からの設定画面でできることで満足すると思うが、高度な制御をしたい場合、 Varnish の設定ファイルのスニペットをアップロードしたり、あるいは設定全体を書いてアップロードする、といったことができる。例えば JWT のデコードを VCL でやってしまって、同じ URI にたいして認証済みユーザーとそうじゃない人でキャッシュのだしわけなんてことが Fastly 上でできるようになる。
ただし VCL でいろいろな制御を実現しようと思うと、 VCL の表現力の低さにより地獄を見ることになるので、得られるベネフィットと相談しながらこのあたりはやっていくことになる。