橋本技研の技術力について
20年以上の実践で培った販売ノウハウ × ウェブ技術
1998年頃、私は会社勤めの営業マンだったのですが、営業売上に上乗せするために、勝手に会社のホームページを作ってネットショップを運営しはじめました。
気付けば、サーバの構築から、ページのデザイン、写真撮影、ショッピングカートのプログラミング、さらにはマーケティング、販売促進、広告運用まで、すべて一人で行うようになっており、ホームページやネットショップのことなら大抵のことに対応可能なスキルを積み上げてきました。
ウェブサイトの制作技術について
20年以上の実務経験の中で、以下のようなスキルやノウハウを広く深く学んでいます。
HTML、CSS
言うまでもなく、ウェブサイト制作の基本技術であるHTMLとCSSについて習得しています。
ちなみにCSSについては、2003年頃からCSSレイアウトでサイト制作をしていました。
当時はブラウザのCSS機能が貧弱でバグも多かったため、CSSによるレイアウトは困難を極めました。大手を含むほぼすべてのサイトはテーブルを使ったレイアウトが採用されており、CSSでレイアウトされたサイトは、私のサイト以外にほとんど見ることはありませんでした。(昔話)
JavaScript、Vue、NuxtJS
プレーンなJavaScriptなもちろんのこと、最近はVueやNuxtを使用したモダンな開発がメインになっています。
また、当サイトのトップページにあるようなゲームの制作も可能です。
以前はJQueryを使用したサイトも多数制作しました。
ちなみに、このサイトはNuxtJSで制作しています。
Node.js
サーバサイドのAPIなどは、Node.jsを採用することが多いです。npmなどのエコシステムが充実しており、高度なシステムを短期間で製作することが可能なためです。
フルスクラッチでカートシステムを製作する場合は、フロントエンドにNuxtJSを、サーバサイドにNode.jsを採用することが多いです。
PHP
Node.jsを扱うようになる前は、PHPを使用してサーバサイドの開発をしていました。また、WordPressの案件ではPHPを使用しますので、現在でもよくPHPでプログラミングをおこなっています。
MySQL
以前勤めていた会社のメールシステム兼受注管理システムをMySQLで運用していたこともあり、テーブルの設計やインデックスのチューニングなどはかなり経験を積みました。
ちなみに、そのメールシステムは2004年から運用を開始し、改良を続けながら現在も運用を続けています。
MongoDB
複雑なカートシステムを構築する際に、スキーマレスなDBであるMongoDBをよく使用します。JavaScriptとの親和性が高いため、Node.jsでAPIを構築する際にスムーズに開発が進められます。
Elasticsearch
テキストの形態素解析を使用した全文検索などが必要な場合に、Elasticsearchを使用しています。
現在、新しくメールシステムを開発中ですが、150万件越えのメール本文から、会社名や個人名、商品名などで検索した際に、瞬時(0.1秒以内)に結果が返ってきたときには感動しました。
WordPress
WordPressを使用したサイト制作も可能です。既製のテンプレートを使用したライトなものから、オリジナルテンプレートをフルスクラッチで制作することも可能です。
開発効率を上げるために、オリジナルテンプレートを制作しました。UnderscoresとBulmaを組み合わせたものをベースにし、pugとstylusで記述する高速開発環境を用意しています。
また、カスタム投稿タイプやカスタムタクソノミーを使用した拡張や、オリジナルAPIを使用したネットショップ化も得意としています。
最近はjQueryの代りにVueを使用してインタラクションを付けることが多く、WordPressであってもかなり複雑なことが出来るようになっています。
※制作実績をご覧ください
Headless CMS
OSSのCMSであるCockpitなどを使用したサイト開発も行っています。
WordPressのREST APIをCMSとして利用する方法もありますが、専用のHeadless CMSを使用する方が、より柔軟で高速なサイト制作が可能になります。一般的なカートシステムでは実現不可能な通販サイトも、NuxtJS + Headless CMSを組合せることで実現可能になります。(橋本技研が最も得意とするパターンです)
特殊なショッピングカートを見積依頼したら実現不能と断られた、あるいは高額すぎる場合には、ぜひ橋本技研にお声がけください。
Docker
以前はVPSサーバを借りて、NGINXやPHP、DBなどをインストールして環境を作っていたのですが、最近はDockerで運用することが多いです。
将来のスケールを考慮して、Dockerオーケストレーションを組みます。Kubernetesはオーバースペックであったり、管理が複雑になり過ぎますので、Dockerの標準機能であるSwarmでシンプルにオーケストレーションさせています。
Dockerを使用するようになってから、サーバのインフラ回りの悩みから解放されました。時間的なコストや経済的なコストも改善するので、積極的にお勧めしています。
クレジットカード決済
これまでネットショップを運営してきた経験から、クレジットカードなどの決済系の処理も得意としています。Apple Payなどにも対応可能です。
マーケティング
20年以上ネットショップを運営していましたので、売上アップを目指して大小様々な勉強会・セミナーに参加してきました。
勉強と実践を続ける中、いくつかの成功事例もでき、流通小売業の専門誌「商業界」に成功事例として掲載されたこともあります。また、同内容がマーケティングのノウハウ本にも掲載されました。
広告運用
ネットショップのCPC広告を自前で運用しており、独立した現在も引き続きGoogle広告を運用しています。定期的にGoogleサポートチームと連絡を取りながら、新しい広告にもトライしています。
先日のGoogleサポートチームとミーティングでは「これだけしっかり設定が行われていて、成果もしっかり出ている広告アカウントは久しぶりに見ました」とお褒めの言葉を頂きました。
ここから先は、『一応できること』も書いておきます。
Ruby
一応、Rubyも書けます。
Rubyのマイナーバージョンアップ(確か1.8あたり)で、文字列の代入が「コピー」から「参照」に変わるという破壊的な変更があり大変な目に逢いました。マイナーバージョンアップでこんな大きなブレーキングチェンジが入るなんて、ちょっとRubyの実践投入は時期尚早だぞと距離を取ってそれっきり新規採用はしてないです。
以前勤めていた会社の基幹システムの一部にRubyを採用していますので、時々メンテナンスする程度には触っています。
Perl
今でもあるのですね(笑)
インターネットが始まった頃、サーバーサイドといえばPerl一択でした。私が最初に作ったショッピングカートもやはりPerlでした。(当時バージョンが4から5に移行した時期ですが、現在もバージョン5のままメンテナンスが続けられていることに驚きました。凄いな。)
C、C++
最近はすっかり書いていませんが、たぶんまだ書けると思います(笑)
ポインタも大丈夫だと思います。
Pascal(Delphi、Free Pascal)
随分前になりますが、一時期ショッピングカートをFree Pascalで書いていたことがあります。スクリプト言語ではなく、コンパイル言語になりますので、実行ファイルをサーバに置いて使用していました。
まだ通販サイトのショッピングカートが珍しい時代に、やたら高速で動くショッピングカートが2chで話題になりました(笑)
また、DelphiによるWindowsプログラミングも経験しています。以前の勤務先のメールクライアントは、現在も私がDelphiで製作したものを使用しており、今でも年に数回コードを修正してバージョンアップしています。
マシン語(Z80、6502)
仕事ではなくあくまでも趣味としてですが、アセンブルしたプログラムを走らせて遊んでいました。
Z80は懐かしのMSX。アセンブラは、雑誌の付録にアセンブラのダンプデータが掲載されていたのを使ってました。
6502は初代ファミコンのチップで、ファミリーベーシックV3上でマシン語で作ったシューティングゲームを走らせて遊んでました。もちろんアセンブラなんてありませんので、ハンドアセンブルです。
サーバ構築
VPSにCentOSやDebianなどをインストールしてサーバを構築していました。
でも、モジュールのバージョン問題に頭を抱える未来が確実に来るのですから、もしサーバ構築の依頼を受けてもお断りすると思います。これからはDockerを使いましょうよ。