GitHub Codespacesの使い方が良く分からなかったので触りつつ備忘録を残す。

 基本的にRemote環境で動かすDevContainerという理解で良さそう。

 

 なのでリポジトリの最上位に「.devcontainer」というフォルダーを作ってあげてその中に「devcontainer.json」ファイルを配置してあげればVS Codeの拡張機能を初期構築時にインストールできるっぽい。

 (1回限りならCodespacesを作ってから手動で入れても全然OKだけど、今回は複数人の利用を想定して自動で入れたかった)

{
    "extensions": [
        "GitHub.github-vscode-theme",
        "github.copilot"

    ],
    "onCreateCommand": "echo PS1='\"$ \"' >> ~/.bashrc",
    "postAttachCommand": "git pull --all"
}

 こんな感じでcopilotの設定を1行追記。

 


 これまでブログを書き、本を書き、動画を作り情報発信をしてきましたが、4年ほど前から教育や研修という分野に挑戦を始めました。

 「こちらから発信する」という点では同じですが、不特定多数ではなく、数十人の受講者と向き合う形になったことで、様々な気付き、課題が生まれました。

 

 相手が不特定多数のブログや書籍などでは、上手に簡潔に「発信する」ことに注力していました。

 受け手側が見えないので、そう考えるのは自然な流れだったかなと思います。

 

 それが数十人の受講生と対することで、受け手の反応が見えるようになりました。

 昨年の.NETラボでお話させてもらいましたが、実は伝わってなかった、もっとうまく伝えられそう、などといった「伝える」ことに関して様々な知見を得られました。

 自分ではこれまでの「発信」から相手を意識した「伝える」に変化したと呼んでいます。

 

 色々と考えやノウハウも得ましたが、言葉にするにはいまだ道なかば、もう少し試行錯誤を繰り返して確証を得てからドヤ顔で語りましょう(死ぬまで語らない方が良いパターン)。

 

 2022年までの4年間は挑戦と学びの年であり、2023年はそれらが何らかの形になる年にできたら良いなぁと漠然と考えつつ、ぼんやりとした振り返りを終えたいと思います。

 2023年も楽しく頑張るぞ!!


 「EC-CUBE Advent Calendar 2021」21日目の投稿です。

 

 Windows上でEC-CUBEを動かして開発するのは中々難しい。

 技術的難易度というより「そもそも本番はLinux(Unix)」だったり「思ったよりパフォーマンスが出ない」ので開発中やリリース時に色々と問題が発生する。

 

 知識がある方は仮想化した環境やリモート環境を使用すればよいのだが、開発者じゃなくて店舗運用する人が触ったりするのがEC-CUBEだ。

 だからこそ、Windowsで「最低限触れる」の敷居は低い方が良いだろう。

 ということでWindows環境で最新のEC-CUBE4.1をXAMPPできるだけ快適に動かしてみる。

 

 XAMPP自体が久しぶりなので、XAMPP含め間違いありましたら指摘お願いします。

 

インストールが遅い

 

 データベースにデータをINSERTする際にタイムアウトするケース。

 店舗運用者の方がここで躓くケースは多い。

 とはいえ、1回限りなので、PHPのタイムアウトを伸ばすことでデータベース生成を乗り切って欲しい。

(php.iniのmax_execution_timeを延ばすなどで対応できますので、詳しくは検索してみてください。)

 

 XAMPPならコントロールパネルのApacheの行のConfigからphp.iniをサクッと起動できます。

 

 もしくはPCの性能を上げる(結構、古いノートPCとかのケースがあるんですよね)。

 

Microsoft Defenderのチェックから除外

 

 Windows標準のウィルス対策ソフトウェア。

 細かいファイルを生成するcacheなども頑張ってチェックしてくれる。ありがたいことだが、PCのスペックによってはこれが地味に痛いことがある。

 ウィルス対策ソフトをオフにするのは乱暴なのでEC-CUBEをインストールしたフォルダーを開発中はチェックから除外するというのでどうでしょう?(自己責任でお願いします)

 Windowsの設定画面の「更新とセキュリティ」から、

 「ウィルスと驚異の防止」

 

 「設定の管理」から

 「除外の追加」で特定のフォルダー以下を除外することができます。

 何度も言いますがセキュリティのリスクがあるので自己責任&開発中のみでお願いします。

 

 

 

 

 

TwigキャッシュOFF(イマ一つ)

 

 EC-CUBE4(というかベースのsymfony )がWindowsで遅いのはキャッシュ周りが遅いということで、キャッシュ周りも確認してみた。

 2回目のアクセスが逆に遅くなることが推測されるのと、あんまり早くなった気がしないが、環境次第ということもあるので一応残しておく。

 

 Twigのキャッシュはprod設定ならvar\cache\prod\twigに生成される。

 これをオフにするにはconfig\eccube\packages\prod以下にtwig.yamlを配置してあげればOK。

 

twig:
    cache: false

 

 cacheファイルを削除して再度ページをリロードするとtwigフォルダーが生成されていないことがわかるだろう。

 

最後に

 

 EC-CUBEの開発環境にという場合は、やはりDockerなどの使用をおすすめします。

 触ってみたいだけなら、レンタルサーバーのいくつかにある簡単インストール機能でインストールして触るという手段もあります。


 書いている今、イベントは現在進行中ですが、鉄は熱いうちに・・・ということで感想を書き連ねていこう。

 EC-CUBE DAYはEC-CUBEの大型イベントだが、新機能や新製品の発表というより、EC-CUBEを主導する株式会社EC-CUBEが目指す方向性や、顧客と開発者の声が聞ける大きなイベントというニュアンスで捉えている。

 スニークピーク的に今後の開発予定や実装予定の機能をチラ見せしてくれることはあるが、どちらかというと現在のEC-CUBEにフォーカスした情報が多かった。

 

 私の印象に残った話題は以下。

 

DX

 

 DXと書くと、今話題のキラキラワードに聞こえるかもしれないが、EC-CUBEは自由なカスタマイズが可能というのが大きな武器であり、DX的なテーマはずっと語られてきたし、顧客・開発者ともに意識してきたと思う。

 よりDXに重きを置けるようにEC-CUBEは環境を整えていきますという形で開発者のDXと店舗運用者・利用者のDX、2つのDXで2DXという言い方をされていました。

 気になる方はYouTubeで視聴可能になった金さんの基調講演を見るとよりわかりやすいと思います。

 先にも書いたが、EC-CUBEはカスタマイズしてなんぼ、顧客と開発者の関係が大事。だがそれが難しい「顧客は販売に詳しいがシステムには詳しくなく、開発はシステムに詳しいが販売については詳しくない」という関係性をどうやって繋ぎ合わせるかの繋ぎ目でトラブルが発生することが多い。

 

 イベントで主眼にしていたのは、以下に早く価値を届けることができるかという部分だと思うが、それ以外にも色々と難しい。

 

 システム開発に強みがある会社、デザインやSEOに優れた会社、企画・マーケティングが得意な会社、セキュリティ面で万全な会社・・・全てを備えたデベロッパーに依頼できれば最高だけど、そんな会社はなかなか無い・・・という部分のハブとしてコミュニティの強化を目指しているのかな。

 

セキュリティ

 

 セキュリティについての対策強化は近年見られるEC-CUBEの大きな注力ポイント。

 「広く使われる=狙われる」ということで、普及してきたEC-CUBEが話題になることもチョイチョイありましたが、素早いパッチ対応やチェックツールなど対策強化でEC-CUBEはより堅牢なフレームワークになりつつあります。

 セキュリティの問題は日進月歩、セキュリティホールが0という平和な世界は無いのですが、EC-CUBEは十分なリソースをかけて、素早い対応ができていると感じました。まぁ、色々ありましたしね。

 

 とはいえ、EC-CUBE側が素早いパッチ提供を行っても、自身のサイトに適用しなければ意味がないので、自由なカスタマイズ性と自由に対する責任は運用する側が意識しなければならないポイントですね。

 なかなか難しい面があるのは承知のうえで、セキュリティパッチの適用はEC-CUBEの管理ページ上からボタン1つで出来たら良いなぁ。

 

コミュニティ+開かれた窓口

 

 日本語で質問できる活発なコミュニティは昔から強みの1つでしたが、今回のイベントでは盛んに本体への参画をはじめ、セキュリティ認定などのアクションを求める声がありました。

 意欲さえあれば、コアな部分に参加できるというのは、非常にチャンスだと思う。

 

 この辺は、窓口がどことかちゃんと聞いていなかったので、後から情報が出ると信じて、出たらまとめます。

 

4系と2系

 

 2系どうなるの? という問題に関しても、co.jpなどでも積極的にサポートしてくれるようなのでうまく選び分けできそう。

 個人的な感想ですが、システム的なハードルが低く軽量な2系は大規模改修や継続的な機能追加には向かないがシステムに詳しくない方でも利用でき、4系はWebフレームワークを骨子とし、CD/CIなど最新の開発フローに適したシステムに強い開発者向けのフレームワークだと思っています。

 どちらにも魅力があったので、今回のco.jpの2系も4系もサポートという部分などは嬉しい情報。

 

co.jp

 

 クラウド版EC-CUBEなco.jp。

 

 これから発展予定という感じで、エンジニア視点で見ると、一番わくわくしました。

 裏返せば、発展=現状足りない部分もあるということなんですが、力の入れようは伝わってきました。

 

 co.jpは公開当初に申し込んで申し込み過多で使用できず、そのまま触らずに来たので、そろそろちゃんと理解しておかないとなぁ。

 

信頼関係

 

 今回、EC-CUBEで作られたサイトを運用するオーナーさんと開発パートナーによるセッションが複数ありました。

 どれも色々な形で信頼関係を築いていることが感じられるセッションでした。

 信頼関係って難しいですよね。

 同じ会話でも信頼関係の有無で影響が異なることも多く、その辺も視聴する方のためになるセッションだったのかなぁと思います。

 

 こういう事例系は実際の実際に役立つテクニックなどが散りばめられており、ECサイト構築ツールであるEC-CUBEならではの面白いプログラムでした。

 

お昼休みのセッション!!

 

 お昼休みということで、座談会的なテーマが多かったようですが、これが聞きたかったw でもお昼を食べずに聞くほど食の欲求に強い人間ではなく、ちょっとだけしか聞けませんでした。

 非常に面白かったので、お昼休み後に軽くやってほしかった。

 

 追伸:参加者はあとからアーカイブを見ることができるらしい。やったね。

 

エヴァンジェリスト?

 

 はい、今年ほとんど活動できていません・・・ごめんなさい。

 EC-CUBE系YouTuber(正確にはUdemyですが)なんて計画も立てていたのですが、動画作るの本当に大変&収益化困難で「どうしたもんかなぁ」と手が止まっていました。

 

 とりあえず、EC-CUBEの今を伝えるぐらいの軽い気持ちで、止まっていたブログ再開も含めてツラツラ活動しよう。

 

 


 タイトルの通りですが「Visual Studio:GitとGitHubでコードを管理する」コースを公開しました。

 Visual Studioから使用できるGitについては、Gitを知っていれば使えるようで、分かりづらいメニューがあったりします。

 

 Visual Studioのインストール時にGit for Windowsがオプションでインストールできるのですが、Git for Windows無しでもVisual StudioからはGitが利用できてしまいます。

 不思議???

 

 まぁVisual Studioのインストール場所に専用のGitがインストールされているというのがタネなのですが、分かりづらい。

 

 そんな感じで、色々学習ポイントがあるVisual StudioからGitを使用する方法をLinkedInラーニングでぜひ学習してみてください!!


 今年もMicrosoft MVPアワードをいただきました。

 カテゴリーは引き続きDeveloper Technologiesです。

 

 MVPアワード受賞は自分にとっては1つの昨年を振り返る機会なのですが、だいぶアウトプットの形が変わってきました。

 一番大きな違いは文章から動画への転換です。

 

 計画では教室などで行う対面での講師スキルアップを行う予定でしたが、ビデオチャット越しにやり取りする形式が主になりました。

 

 SchooやLinkedInで動画を公開できたことも良い経験になりました。

 結果論ですが、このご時世に対応するためのスキルが養えたと思います。

 

 これから先、どうなっていくか不透明な世の中ですが、変化を恐れない1年を過ごしていこうと思います。

 


C#に関する10のTipsを紹介する動画です。

サクッと見れるので、ぜひ一見(一読の動画的表現?)ください。

 

https://www.linkedin.com/learning/ten-tips-for-the-c-sharp-developer-14043600


 .NETラボ 勉強会 2021年6月勉強会でマインクラフトでプログラミングを行う方法についてお話いたしました。

 半分以上マインクラフトのゲーム画面を表示していたので、自分にとっても新鮮なセッションになりました。

 

Minecraftでプログラミングを学べるって本当? from Makoto Nishimura