EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

2019-01-01から1年間の記事一覧

Javaのequalsメソッドから学んだこと

イートスマートの新人エンジニアが、業務の中でコードレビューを受けて学んだことについて書いてみたいと思います。Javaのequalsメソッドを使った例を取り上げます。 Javaのequalsメソッドについて if (a.equals(b)) {以下省略...のようにaとbが文字列の場合…

クスパUI改修におけるトラフィックの影響について

今回は、クスパでエリア(地域)毎の料理教室情報を扱うスマートフォンページ(以降エリアページ)のUI改修におけるトラフィックの影響について記載します。 cookingschool.jp エリアページの構成 エリアページ構成は下記の通りです。 UI改修する目的 東京のエ…

etcdを使ってDockerのオーバーレイ・ネットワークを構築する

サービス環境ではSwarm modeを利用していますが、機能としてはオーバーレイ・ネットワークしか利用していないので、Swarm modeへの依存を無くせないか検討しています。 オーバーレイ・ネットワークを構築するにはキーバリュー・ストア・サービスが必要とのこ…

JAVAとReact

弊社のサービスは、主にサーバーサイドはJAVAのServlet/JSP、フロントエンドはJQueryで作られている所が多いのですが、色々と新しいアーキテクチャを使えるよう取り組んでいます。 サーバーサイドについては、プラットフォームをdockerコンテナにすることに…

Javaのインターフェースを使った実装について

イートスマートの新人エンジニアが、Javaの開発業務の中でインターフェースを使った実装を行ったので学んだ内容を振り返ってみたいと思います。 Javaのインターフェースについて インターフェースとは、それ自体には具体的な処理をもたせずに、別のクラスで…

バックアップストレージの運用について

各システムのインフラ担当の方は、万が一の事態に備えバックアップの運用をされている事と思います。 バックアップ運用をするに辺り、どのデータを、何世代までバックアップするか等を検討されると思いますが、ストレージが無限に存在すれば、何世代でもバッ…

PostgreSQLの関数でパラメータのチェックを行う

SQL

引き続きSQL関連のネタを書いてみたいと思います。 Javaでクラス外から参照出来るpublicなメソッドを作成する時は、値のチェックとエラーメッセージを行うように心がけています。 これは、クライアントへ想定外の利用を正しく伝えるためです。 public String…

PostgreSQLのPL/pgSQLで複数行の戻り値を返す

SQL関連の記事が続いているので、今回もそれに乗っかってみました。 サーバーサイドの実装をしていると、少しややこしいが共通的な処理について、どこに実装するのが良いか迷う時があります。 基本的にはビジネスロジックに関する内容であれば、アプリケーシ…

イベント情報のテーブル設計で考えたことまとめ

タスクの趣旨 弊社サービスのもぐナビでは、様々なイベント、キャンペーンなどをオンライン、オフライン問わず実施しています。開催イベントの一覧が情報として見れるといいよねということで、新らたにイベント情報をもつテーブルの設計を考える機会がありま…

SQLのnullの扱いについて

あるカラムに文字列を追記したい為、update分で元のカラムにパイプ(||)を使って連結して更新を行った際、元カラムがNULLの場合意図しないNULLに更新されたので原因を調査してみました。 調査対象 Postgresql9.3.4 事象 例 update table_name set description…

Tomcat8のjar読み込み順について

結論 Tomcat8ではjarの読み込み順が決まっていない Tomcat7以前のようにアルファベット順に読み込まれると思うと痛い目に遭います。 きっかけ 昨年末からサーバの増強を進めています。サーバの構築は約一年ぶりなので不安も有りましたが、以前作成したAnsibl…

プライベートmavenリポジトリでのバージョンの扱いについて

弊社では、Webアプリケーションのビルド用に、かなり昔に作ったAntのスクリプトを使用しているところがあるのですが、JARのバージョン管理や、新しい開発者の環境構築の容易さを考えて、(今更ながら)Mavenを使うように試してみました。 プライベートリポジト…

Javaのデータベース操作について

イートスマートの新人エンジニアが、JavaのDB操作について学んだ内容を振り返ってみたいと思います。 大まかなDB操作の流れ ①Connectionでデータベースとの接続を確立。 ②Statement(PreparedStatement)でSQLを実行。 ③ResultSetでSQLの実行した結果にアクセ…

ImageFluxの導入効果について

以前「ImageFluxの導入について」の記事を掲載しましたが、導入後の効果について報告したいと思います。 eatsmart.hatenablog.com 2018年9月から導入に向けたシステム検証を重ね、本番環境へは2018年10月24日に導入しました。 今回は、導入前・後の1ヶ月間…

サーバのディスクを整理した話

あけましておめでとうございます。 本年もEatSmartシステム部ブログをよろしくお願いします。 新年最初の記事としては地味ではありますが、昨年末に行ったサーバのディスク整理について書きたいと思います。 昨年インフラをデータセンターからクラウドへ移行…