デザインCOMPANYSERVICERECRUITTOPICSBLOGCONTACTCOMPANYSERVICERECRUITTOPICSBLOGCONTACT弊社エンジニアの開発状況と課題2019/07/23弊社はインターネットでスポーツユニフォームを販売している会社ですが、デジタルテクノロジーという分野を大きな特徴にしております。言っても、まだまだ三年目の規模の小さい会社で、現状ではサイトやその他社内システムは代表の僕が全て構築しています。理由は簡単でプログラミングリソースが社内になく、大きな外注費の捻出が難しいからなのですが、一人で大体のものを開発してしまうやり方は、これはこれで大きなメリットもあるのです。中でも一番大きなメリットが「無駄がない」の一言につきます。UIデザインも自分でやってしまうので、よくありがちなデザイナーとフロントエンドの意思疎通のすれ違いも起こりようがないですし、フロントエンドとバックエンドの細かい擦り合わせは必要ありません。設計書は作りますが、情報設計と整理がきちんとできていることが、自分で分かればいいので最低限のものしか作りませんし、それはそれは制作スピードが速いです。デザイナー、フロントエンド、バックエンド、データ設計など役割ごとに人が違い、脳味噌が別れていたら、とても大変だろうなと容易に想像できます。最近は流石にビジネスの規模が大きくなり、解決しないといけないハードルも上がる一方、エンジニアリング以外の仕事も膨れ上がっており、このままでは無理だろうなという感覚がつきまとっています。ユニフォームのエンブレム部分の文字潰れを心配しつつ、採用面談したアルバイトさんの合否を判断しつつ、なぜこっちのサーバーではリレーションが上手く動かないのか、vueとwebpackとlaravelが共存できる環境構築はどうすればいいのか、などと考えていると頭が爆発しそうになります。具体的に決めているわけではありませんが、数年のうちにパートナーとなるべき優秀なエンジニアさんをなんとか見つけたい、そう願っているわけです。そこでそう言った方に少しでもアピールできるよう、弊社の開発状況などをご紹介したいと思います。これまで開発してきたデジタルアセット創業して以来、これまで以下のデジタルアセットを開発してきました。どれもこれも開発は大変でしたが、今ではどれも弊社の重要なビジネスドライバーです。公開サイト一番大事なお客様に弊社サービスの内容を知っていただき、購入していただくためのサイト。会員機能・カート機能付き。ECシステムなどは使わずにスクラッチで開発しています。公開サイトの中にある、お客様にユニフォームのデザインを自由にカスタマイズしていただくためのシミュレーター。お客様が自分の望むユニフォームのデザインを引き出せるかどうかの、最前線になる場所で、弊社のビジネスのコアとも言える重要なプロダクトです。オーダー管理システムオーダー状況やデザインデータが集約される社内システム。生産管理やお客様とのコミュニケーションもこのシステム上で行います。メルマガ配信システムお客様の興味を持っているアイテムや購入状況によって内容を振り分けて、配信するメルマガ配信システム。メルマガ配信システムはASPのものやCRMツールなど多くのサービスがありますが、弊社のサービスは特殊なオーダーフローを持つため、一般的なものでは対応が難しく、頑張って自社開発をしました。使用言語フロントエンド弊社のプロダクトの場合、フロントエンドで解決しなければならない難しい部分はユニフォームのデザインシミュレーターシステムになります。お客様がリアルタイムで自由にフォントやカラーをスマートフォンでカスタマイズできるようなWebアプリケーションの開発はとても難しいですが、弊社にとってはとても重要なプロダクトです。JSがAngularにバージョンアップした段階で、新たな学習コストが必要なこともあり、よりコンパクトなVue.jsに開発言語を切り替えました。シミュレーター開発は機能が多く必要ですが、基本的にはページ遷移もしない小規模な開発ですので、フルスタック的なものよりはVueのような出力に特化したフレームワークが適しているという判断からです。バックエンドバックエンドはphpのフレームワークであるLaravelを採用しています。人気が急速に出たフレームワークですが、Vueとの相性もよく、非常にわかりやすい構造になっており、かつカスタマイズも自由自在なので、今の所不自由は感じておらず、今後もLaravelでの開発が中心になると思います。商品情報も含めたコンテンツ管理にはWordpressを利用しています。Wordpressは本来はブログツールですが、カスタマイズ性が非常に優秀で、apiにも落とし込むのが容易なので、フル活用しております。現状はgulpを使用してのコンパイルなどの方法で開発しておりますが、ES2015やwebpackなどの最新の知見はほどんど獲得できていない状況です。今のやり方では機能ごとにファイルを分けたオブジェクト指向の開発はやりにくく、高機能なウェブアプリケーションの開発には不向きで、メンテナンス性にもかけ、このままではいけないという危機感を感じています。Vue.jsの知見を更に深め、合わせてwebpackなどのモジュール思考の開発方法にスイッチしていかなければという感じです。LaravelバックエンドはLaravelでの開発手法のレベルアップをしていかなくてはと考えています。Webアプリケーションを作るのに、基本的な概念は理解して実行できてはいますが、テスト開発やVueとの連携など、まだまだ理解しきれていない部分も多くあります。非常に優れたフレームワークなのですぐに使えてしまうのですが、さらに高度な技術が必要とされる部分でのトライをして行きたいです。3D将来的にはユニフォームシミュレーターは2Dではなく、3D表現にできればUXの大きな向上が見込めるはずです。そのために凡庸的な3Dライブラリであるthree.jsは攻略しないといけないと考えています。ハードルは非常に高いですが、トライする価値は高いと考えています。現在はサーバー周りは専門企業にお願いしており、社内での取り組みは後回しになりがちなのですが、ビジネスの規模が大きくなっていくにつれて、サーバー系の知見の強化はマストだと考えています。取り急ぎAWSの基本的な部分の研究を進めており、各サイトの特性に合わせたサーバーの選択と構築を進めていきたいです。DESIGNですが、弊社はエンジニアを募集しています。小さな会社でスタートアップっぽい派手さはあまりありませんが、着実に成長を続けている会社です。フロントからバックエンドまでとカバー範囲は広いですが、自分たちの作り出したウェブテクノロジーがビジネスを生み出しているという興奮を日々感じ取れる、エンジニアにとっては恵まれた環境でもあると思います。同じ業務の繰り返しというものがあまりなく、何かしら新しいスキルが必要なチャレンジングな環境なので成長は半端なくできると思います。我こそはという方のご応募をお待ちしております。