サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
tech.raksul.com
はじめに こんにちは、ラクスル事業所属で現在はグループ会社である株式会社ダンボールワンで開発をリードしている岸野です。 今回はモノリスなシステムをマイクロサービス化していく際に生じるデータベースの分離・移行という頭を悩ませる課題に対して、Debeziumというソフトウェアを利用することで少し楽にしてみようという試みについてご紹介します。 課題背景 ラクスルではRPP(Raksul Platform Project)としてモノリスで巨大なPHPのシステムをマイクロサービスに切り分けるということを行っています。一般的にデータベースを複数アプリケーション間で共有することはバッドプラクティスと言われており、ラクスルでもマイクロサービス化と同時にデータベースの切り出しを行っております。 そういったモノリスなシステムのデータベースを切り出す際に問題になることとしてデータの移行や同期が挙げられます。 例
世の中にはプログラミングのベストプラクティスとして紹介される原則があります。例えばDRY, KISS, SOLIDなどが挙げられます。 ハコベルのサービスを作ってきた歴史を振り返ってみると、YAGNIの原則に近い意思決定だったなと思うものがありました。その判断もたらした影響を、YAGNIの原則に従うメリットの事例として紹介したいと思います。今回紹介する事例と現在我々が取り組んでいること、両方が物流の効率化に関わるものとなっています。当時の想定と現在の取り組み、その違いと今後の展望についても併せて紹介していきます。 YAGNIとは Wikipediaでは以下のように定義されています。 機能は実際に必要となるまでは追加しないのがよいとする、エクストリーム・プログラミングにおける原則である。 https://ja.wikipedia.org/wiki/YAGNI “You ain’t gonna
ハコベルの中村です。 みなさんのチームではE2Eテストをやってますか?このブログでも紹介した通り、印刷サービスの開発チームでもE2Eの記事が出たばかりですが、ハコベルコネクトの開発チームでも同時期にE2Eテストを構築しました。(事業部も違えば、プロダクトのフェーズも違うので、力をいれたいポイントが異なっていて、読み比べするのも面白いと思いますので是非両方読んでいただけると!) ハコベルコネクトの関心としては主にこれらの点でした。 物流業界の幅広いお客様に使って頂くために、IE11などのブラウザでも使えるようにチェックする必要があるが、時間がかかってしまう 機能追加・変更の影響範囲チェック漏れでバグが出にくくしたい フロントエンドのテストとしてブラックボックステストをしたい この課題を軽減するためにE2Eテスト環境の構築をスタートしました。TestCafe + Browserstack とい
はじめに これまでラクスルではRubyを開発言語として採用することが多かったのですが、最近はコマンドラインツールやバッチ処理などでGoによる開発も増えています。 私が最近取り組んでいる印刷発注基盤の刷新プロジェクトでもGoを使ってWEBアプリケーションを開発しており、社内では先例がないこともあって色々と苦労しながらも楽しく開発を進めています。 GoによるWEBアプリケーション開発では、RubyにおけるRailsのようなデファクトスタンダードは存在しないため考慮すべき点がたくさんあります。 例えば、「パッケージ構成をどうするか」、「WEBアプリケーションフレームワークを使うべきか」などですが今回はちょっと軽めのテーマとしてDIツールについて紹介します。 DIとは DIとはDependency Injectionの略で「依存性の注入」と訳されます。 Goではインタフェース型の値をコンスタラクタ
出社時/退社時の打刻ってとても面倒くさくないですか? わかっていてもついつい打刻するのを忘れてしまいます。そして月末の勤怠締めで打刻忘れの箇所を手動で1つずついれていく。。とても非生産的ですね。 そこでシステム的にこの問題を解決するべく、メルカリの記事を参考にwifi打刻システムをつくりました。 wifi打刻システムとは社員さんが持っている端末(携帯やPC)がwifiに繋がった時に出社打刻をし、最後にwifiに繋がっていた時間を退社時刻として退社打刻を行うシステムです。 それではwifi打刻システムを作る方法について説明していきます。大きくわけて3つのステップに分けることができます。 社員が持っている端末がwifiに繋がっていることを検知する wifiに繋がった端末から社員を特定する wifiに繋がった時に出社or退社の打刻をする 社員が持っている端末がwifiに繋がっていることを検知する
ラクスルのサーバサイドエンジニア 加藤です。 今回はスピードチェック入稿(テスト対象が印刷用ファイルの場合)の自動テストについて書いてみたいと思います。 再びスピードチェック入稿とは チラシや名刺などの印刷をインターネットで注文したことのある方はいらっしゃいますか。 印刷したいものを選んで購入し、自分で用意した印刷データをアップロードして待つと、チラシや名刺などが届きます。通常の通販サイトと違うのは、自分で印刷したいデータを用意し、アップロードする作業です。さらに入稿データはラクスルでチェックし、印刷に適した形式に変換されます。 ラクスルでは、昨年8月末にそれまでオペレータが手動で行ってきたこの工程を自動化、スピードチェック入稿をリリースしました。それまで、1日以上かかってしまうこともあったデータチェックが、その場で完了。印刷物のお届けまでの日数が想定よりかかってしまうということもなくなり
こんにちは。 Raksul Platform Projectの水島です。 先日ふとProduct Manager(以下、PM)の平光さんから、「これって水島さんの昔の記事のことですよね?」と声をかけられました。 なになに??おお〜、私が前職のtechブログに書いたmini specに関する記事がカウルさんのブログで紹介されているではないですか! スタートアップの現場で役立つ開発要件のまとめ方 涙ぐましい。魚拓から復元してくれたのかな。。。感謝。 実は、このときのブログの中で、「mini spec」でググると、外車のMINIのスペック情報が出てきちゃうし社内用語だよ、と書いていたのですが、今はちゃんとQiitaの記事がトップで引っかかるではないですか! 新機能をつくる前に整理しておきたい10のこと しかもクラウドワークスさんも一部ご活用とのこと!そして、mid specなるものが。。。参考に
ラクスルの数少ない女子エンジニアの加藤です。 今回は、8月末にリリースしたスピードチェック入稿のリリースまでのプロセスを書いてみたいと思います。 スピードチェック入稿とは そもそも、チラシや名刺などの印刷をインターネットで注文したことのない方もいらっしゃるかもしれません。 ラクスルは、印刷物を扱うECサイトです。通常のECサイトと違って、商品を選んで配送先と決済方法を選んでもらうだけでは注文は完結しません。お客様が印刷するデータを入稿するという印刷ならではのステップがあります。 また、印刷用データはラクスルで印刷に適しているかどうかチェックして、適していない場合、お客様は再度入稿する必要があります。 これまで、ラクスルではデータが印刷に適しているかどうか、オペレーターが一つ一つチェックし、場合によっては微修正をしていました。人手でやっているため、印刷データが確定して実際に印刷工程に進む準備
配送サービスハコベルの担当の蟻塚です。 ここ1ヶ月半ほど、社内業務ツールを1人でSPAでモリモリ開発していたので、その話を書かせていただきます。 筆者のバックグラウンド サーバーサイドエンジニア。SPAはBackbone/Marionette, React/Reduxで3回ぐらい書いたことがある。CSSもアニメーションも書けないのでフロントエンドエンジニアからは程遠い。SSRとかも詳しくない。 業務ツールの概要 毎日の業務に使うので、使いやすさは重要 ジオコーディング等の非同期処理が数100〜件発生する 社内でのみ使うツールであり、使用者は少人数。 一度運用が回るようになりさえすれば改修はほとんど発生しない(想定)。 SSRとかは100%不要 今回使ったもの フロントエンド Vue.js Vuex vue-router rxjs vuetify バックエンド Ruby on Rails(5
経緯 「複雑化する仕様、委託先との契約形態、稼働スケジュールやキャパシティーという課題を全部解消し、ついでに、雪や地震等で、委託先の変更を迫られてもすぐに対応できるシステムを作ってくれ」と言われて、一体どのようなソリューションにすれば、正しい課題解決ができるのか。そのような緊急度が高く、要件が極めてふわっとしている状態でプロジェクトが難航している中、CTOの泉に突拍子もなく「この課題は、この会社と一緒に共同で解決してみてくれないか?」と言われ、出会ったのがPIVOTALと、その会社が推奨するXPでした。 開始前:XPについて 書籍 エクストリームプログラミング などを読んで勉強しました。ただ、書籍の内容は理解できるのですが、本当にそうなのか?という疑問を抱きました。 疑問1: ペアプロは生産性が下がるのではないか? 疑問2: 将来を見越した設計よりシンプルな設計? ペアプロ(ペアプログラミ
幼いころは外交官を目指していた意識高い系インフラエンジニアの渡邉です。 5月にラクスルに入社し、最初の大きなミッションであったAWSへの移行を9月頭に実施しました。その際に得た知見や工夫した・改善した部分を、同じようにレガシーシステムと戦っている皆様に共有すべくMeetupを開催させて頂きました。 そこでの発表内容をインフラ編・アプリ編と二回に渡りご紹介させていただきます。 なぜ移行したのか スタートアップあるあるですが、「インフラ」というと専任エンジニアは不在でアプリケーションサイドのエンジニアだったり、CTOだったりが片手間に担当していることが多いと思います。 PVが少ないうちはいいのですが、幸いにも注目が集まりPVが増えてくると色々と問題が浮上してきます。 ラクスルも例外ではなく、SPoFが放置されていたり、監視が漏れていたり、disk fullの足音が毎朝聞こえてきたりともう場当た
こんにちは、ハコベルの開発を担当している蟻塚です。 2015年12月ハコベル正式リリースの少し前に、PHP/CodeIgniterからRuby on RailsのWAFの移行を行ったのでその際の話を書かせていただきます。 個人的にこっそり調査1ヶ月、業務時間フルで1ヶ月、延べ2ヶ月程度でメイン部分を移行して、その後1ヶ月で残タスクを消化といったスケジュール感でした。 経緯 もともとラクスルでは、シンプルなサイトはPHP/CodeIgniterで作っており、ハコベルもそれに則って作られていました。 私はベータリリース後間もない2015年9月頃にハコベルチームに参加しました。 それ以前はフルタイムでハコベルにコミットしているエンジニアは0人で、入れ替わりでいろんなエンジニアさんに手伝って頂いていました。 これは今でも変わらないのですが、ラクスルだけでもエンジニアの人数が圧倒的に足りておらず、な
初めまして。入社して3ヶ月ちょっと、エンジニアの天野です。 さて、 はじめに 先日、運用中のWebシステムの一部に関して、ここはバーコードで楽にしたいねーという話が上がりました。 紙でやりとりが必要な作業があり、それに印刷されたバーコードをスキャンして、対応する情報をブラウザ上に表示するというものです。(それまでは人力で紙の情報とWeb上の情報の紐付けを行っていました) バーコードリーダーという単語から、コンビニやスーパーのレジで使用されているあのゴツイやつを連想してしまった僕。 「それって組込み系言語でがっつりネイティブアプリ作んなきゃなんでしょ。うひょー」とか思っていたわけですが、実際はJavaScriptでさっくり実装できました… ということで、今回はWebシステムとバーコードを連携させたお話です。 バーコードの規格 まずはスキャンするバーコードの規格を決めなければいけません。 ご存
はじめに フロントエンド周りを担当している野口です。 昨年の8月に入社して、約9ヶ月が経過しようとしています。入社当時はバックエンドのエンジニア5名(インターン含む)、フロントエンドエンジニアは私ひとりで、デザイナーは不在でした。現在はというと、バックエンドのエンジニア10名(インターン含む )、変わらずフロントエンドはひとりで、デザイナー2名といったメンバー構成です。 作り手の人数が倍以上になり、プロジェクトも複数走り、GitHub のトピックブランチの数が入社当時と比べてえらい増えたな〜と。10名のバックエンドのエンジニアに囲まれ、複数プロジェクトやタスクを並行して作業しているので、ブランチを切り替えることが頻繁に発生します。急な修正もあったりしますし。 そんな時はおなじみの git stash で一時的に変更を退避させます。commit してしまい、あとで reset するとか他にも
お疲れ様です! エンジニアのAです。 2月中旬頃に必要に駆られて開発環境をIDCFクラウドに移行したので、 新しい開発環境についてご紹介をさせて頂きます。 IDCFクラウドに関してはCTOが記事を書いていますので、 こちらも参考下さい 背景 以前のラクスルは開発サーバー1台で、ユーザー毎に環境を作っていました。 人数がそれほど増えなかった時期はそれでも問題なかったのですが、最近は会社の成長に伴い サーバーのリソースが足りなくなってきたので、リソース追加を容易にできるように開発環境の構成を変更しました。 旧環境 新環境 新環境の構成は以下のような構成にしました。 メンバー1人毎に1インスタンス gatewayサーバーを用意して、nginxでreverse proxy dbサーバーは各開発環境で共通でmaster/slave構成 nfsサーバーや開発用ツール用のサーバーを共通利用 d
ちなみに.vimrcに`NeoBundelCheck`と書いて置くと、プラグインをチェックしてくれます。 plugin Vimには八百万の神々の数ほど、多くのプラグインがありますが、 ここでは私がインストールしているプラグインを簡単に紹介したいと思います。 1.Yggdroot/indentLine GitHubリンク 図のようにインデントを表示してくれるプラグインです。但し、Vimの7.3が必要です。 私の場合はサーバーのVimバージョンが7.2だったので、ローカルにVimをインストールしました。 設定により表示の方法を変えるのも可能です。 2.bronson/vim-trailing-whitespace GitHubリンク コードを書いていると、気づかない無駄なスペースを残してしまう場合があります。 もちろん、git diffで確認することはできるのですが、 確認をする
プロダクト開発部のやすいです。 この前の安井と同一人物ですが、基本的には平仮名のやすいの方が字面が好きなので、 そちらを使わせていただきます。 過去の記事で、ノンエンジニアでもSQLを使えるようになろう的なブログを書いていましたが、 やはり慣れなかったので、Tableauで出来る方法を考えました。 MySQL社内勉強会をノンエンジニア向けに実施してみた Tableauを使ってSQLと同じことをやるということは誰でも出来るので、 パクッてもいいのよ。と思いまして書きたいと思います。 ●下準備(データ接続) とにかくデータに繋がないことには始まりません。 簡単データの繋ぎ方講座から。 タブの「データ」から「データを接続する」を選択。うちはMySQLなので、そこから基本情報を入力します。 各自、エンジニアにパスワードなどは聞いてね。ちなみに、MySQLに接続するにはODBCが要りますのでお気を付
ラクスルの大嶋です。 「第一回管理画面チラ見せ♡ナイト」に登壇した弊社エンジニア利根川の誘いで、 管理画面のアドベントカレンダーに参加さていただくことになりました。 http://www.adventar.org/calendars/586 今回はラクスルがどのように管理画面を作っているのかをご紹介したいと思います。 1.ラクスルにおける管理画面とは 管理画面といっても会社ごと、サービスごとに担っている役割は様々だと思います。 ラクスルにおける管理画面とはカスタマーサポートとDTPチームが利用する社内システムを指します。 この管理画面はラクスルのサービスリリース当初から存在していますが、 当然サービスの急成長に伴って初期システムのままでは運用に耐えられません。 ※詳しくはこちらのブログをご参照ください http://tech.raksul.com/2014/12/09/admin
ラクスルの利根川です。 今年7月に縁あって登壇した「第一回管理画面チラ見せ♡ナイト」というイベントが大人気となり、 その続編でアドベントカレンダーも作られることになりました。 http://www.adventar.org/calendars/586 昨日はオンラインサロンプラットフォームSynpseのtamukenさんの「データ解析で、ネットコミュニティはもっと面白くなる」でした。 明日はco-meetingのyanotakaさんです。 (7月の講演内容はこちらに出ていますので、ご覧いただければと思います。http://geechs-magazine.com/2685 ) ブログでは管理画面のチラ見せ♡はできないので、 今回のアドベントカレンダーでは、7月とは少し違う観点で、 「当社の業務用の管理画面がどうやって進化してきたか」をテーマで振り返ってみます。 1.オープン時 ~ 1
みなさん初めまして。安井と申します。 WEBディレクターを行っております。 以前はリクルートコミュニケーションズという会社におりまして、12月1日よりラクスル株式会社に入社いたしました。 まだ、具体的な業務は行っておりませんので、転職の経緯についてお話いたします。 1.前職の経験 在籍したのは、9年8ヶ月なのですが、たくさん経験させてもらっておりまして、 広告実制作(Illustrator、Photoshop)、大量広告の進行管理、広告制作のディレクション、 旅行広告デスク業務、原稿制作業務設計、WEBページディレクション カスタマー・競合調査、UI・UX設計(ユーザーインターフェイス) と言う経歴です。 2.転職する際に気になったこと 僕にとって、初めての転職ですので、気になることがいくつかありました。 1番気になったのは、収入。 みなさんもご存知のとおり、リクルート系列は給与が世の中水
こんにちは。ラクスルのフロントエンド周りを担当している野口です。 過去のTech Blogでも触れられていますが、ラクスルではGitHubを導入しています。 日々利用していて、開発に欠かせないGitHubですが、最近まで便利なキーボードショートカットがあるのを見過ごしていました。(何でもっと早く気が付かなかった…。)使ってるアプリケーションやツールのショートカットって知っておいて損はないですよね。効率が地味に上がるもんです。 GitHubのキーボードショートカットはいくつかありますが、今回はその中でも特によく使う5つをご紹介したいと思います。ちなみにそのページで使えるショートカットは「?」と打つと表示されます。 【1】s ページ上部の検索にフォーカスします。 現在のブランチ内をすぐに検索することができます。 【2】w ブランチ/タグ切り替えにフォーカスします。 しかも検索フォームにカーソル
どちらかというと、管理ではなくエンジニアが気持よく働ける環境づくりにこだわっていきたいと思っています。 今後もさらにメンバー拡大していきますが、ビジネスから運用までわかるスーパーエンジニアがどんどん生まれてくる環境をつくっていきたいので、そのためのチャレンジもさらにいくつか考え中です。
こんにちは。 ネット印刷のラクスル システム部の大嶋です。 今回はgitの便利な機能をいくつかピックアップしてご紹介します。 gitは非常に便利なツールで、ラクスルのシステム開発には欠かせません。 ただ、はじめてgitを使うときは色々と操作や概念に戸惑うことも多かったなと記憶しています。 おそらくgitにある程度慣れてくると以下のコマンドは日常的に使うようになっているでしょう。 基本的なコマンド ・git add – インデックスにファイルを追加する ・git commit – インデックスに追加されているファイルをコミットする ・git pull – リモートリポジトリからローカルリポジトリを更新する ・git push – ローカルブランチをリモートに反映する ・git merge -リモート/ローカルのブランチを合流 ・git checkout -ブランチの切り替え
こんにちは。 ネット印刷のラクスル マーケティングの淵野です。 今いろいろ話題のFacebook広告。 広告掲載するバナー作成において、Facebook独自のルールがあるのをご存知でしょうか。 今回はFacebook広告の「テキスト20%ルール」にまつわるエピソードをご紹介します。 1.「テキスト20%ルール」とは? Facebook広告には「テキスト20%ルール」というものがあります。 これは、広告掲載するバナークリエイティブの中で、 テキスト部分が全体の20%を超えてはいけない、というFacebook独自のルールです。 Facebookのページには下記のように説明があります。 https://www.facebook.com/help/468870969814641 >画像の20%以上がテキストになっている広告はFacebookでは承認されません。 >テキストが多すぎる
こんにちは。ラクスルの鎌田です。 3週間前に記事を書かせていただいた時から業務内容が変わり、 現在はカスタマーサポート部のマネージャーを担当しております。 ベンチャーならではの爆速異動を身をもって体験してます。 さて、前回の記事では導入編ということでCacooのご紹介をさせていただきましたが、 今回は実践編と題しまして、実際にCacooを使っていきたいと思います。 まずは、Cacooでワイヤーを引く際に使う主なパーツ、 すなわち鎌田が思う【Cacooの三種の神器】の解説から始めたいと思います。 【Cacooの三種の神器】 1.「基本図形」 最初の神器は誰もが使い倒すであろう基本図形です。 ワイヤーの9割がこの基本図形で出来ていると言っても過言ではありません。 使い方は簡単で、使いたい図形を選び、 アートボードにドラッグ・アンド・ドロップするだけ。 図形は、大きさや色の調整はも
8月に入社したラクスルのフロントエンド周りを担当している野口です。 今回はラクスルに入社して初Pull Request(プルリクエスト)するまでについて、ざっくり書いてみたいと思います。 Webデザイナーやマークアップエンジニアが、GitやGitHubを導入している環境にジョインする時の参考に少しでもなったらうれしいです。あと、いちスタートアップの開発環境がどんな感じなのか知っていただくいい機会になったらなと。 (GitやGitHubの基本や使い方の詳細は今回書きません。あくまでラクスルにてPull Requestに至るまでのおおまかな流れについてです。) はじめにラクスルのフロントエンド開発に関わる技術などを簡単に箇条書きでご紹介。 Sass Compass Git GitHub Twig(テンプレートエンジン)※フレームワークはSymfony、Codeigniter 前の職場でSass
利根川です。先日、ノンエンジニア向けのMySQL社内勉強会を実施したので、そのレポートです。 MySQL社内勉強会を実施した背景 7月末に「管理画面チラ見せ♡ナイト」という面白いイベントの第一回に縁があって登壇し、 当社のコールセンター画面について発表してきました。 管理画面チラ見せ♡ナイトレポート 他の発表した会社の方の話を聞くと「ノンエンジニアがMySQLを覚える」というのが 人材育成ハック > 事業ハックになりそうだったので、 早速当社でもMySQL社内勉強会を2回に分けて開催してみました。 1.事前準備 ノンエンジニア用の「安全な」環境を用意しましょう。 現在の当社のWebアプリケーションのDBは Master1台 / Slave1台 を IDCフロンティア上に置き、予備のStandby1台を某別のVPSに置いていたので、 新たなDBの追加は無しで、Standbyをノンエ
こんにちは。ラクスルエンジニアインターンのカンです。 大学4年生で、2年生の半ばからラクスルに参加しています。 ラクスルのインターンでは、システムの開発やウェブサイト作成、ランチメニュー決めなどをしています。 今回はラクスルのインターンを始めたきっかけ、学んだことなどについてお話したいと思います。 1.ラクスルとの出会い 最初はインターンをするという考えはなく、アルバイトを探していて、自分のプログラミングスキル(高校で少し学んでいました)を活かした仕事がしたいと思っていました。 その時、大学と連携しているアルバイト紹介サイトで、長期インターンという形でラクスルの募集をみることができました。他にも長期インターン募集やアルバイトはいくつかありましたが、そこでラクスルを選んだ理由は残念ながら今は覚えていません(涙)。 紹介イメージとしてあった「print your dream」という言
こんにちは。ラクスル入社2年目の鎌田です。 主に新規事業開発やサイトの運用、営業などを担当させていただいております。 さて、ブログを書く順番が回ってきたのですが、 tech blog にふさわしいネタが書けるかどうか・・・。 とりえず唯一社内で誰よりも接していると自負している、 Cacooについて書いてみようかなと思います。 【Cacoo との出会い編】 そう、私がCacooと初めて出会ったのは2年半ほど前、 まだラクスルでインターンをしていた時です。 当時からCacooは人懐っこいUIと機転のきいた操作性でいつも私を楽しませてくれました。 ここで一旦Cacoo の簡単なプロフィール: ■ 機能:ワイヤーフレームやサイトマップなどの図の作成 ■ 料金:基本フリーで利用できますが、法人ならTeamプランがオススメ ■ 色 :全体的に青い ■ 詳しくはWebで https://
次のページ
このページを最初にブックマークしてみませんか?
『RAKSUL TechBlog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く