ソーシャルデータバンク テックブログのフィード

https://zenn.dev/p/sdb_blog

ソーシャルデータバンク株式会社の開発チームです。インフラ、品質、UI/UX、DevOpsなど様々な活動に取り組んでいます。

フィード

記事のアイキャッチ画像
PHPでコレクションオブジェクト
ソーシャルデータバンク テックブログのフィード
今回のお話コレクションオブジェクト、もしくはファーストクラスオブジェクトと呼ばれるものについてお話をします。 配列やコレクションはコードを複雑にする同じ型のオブジェクトを複数持つ配列やコレクションを扱うコードは複雑になりがちです。こうした配列、コレクションを扱うロジックがコードに多くなり始めると、コードの可読性が下がることに繋がります。例えば架空のパーティの予約システムを考えてみましょう。このシステムはパーティの参加者(attendee)の情報に応じて様々なドメインロジックがあります。そのロジックたちの中には1予約における参加者(attendee)の集まりに対するロジ...
2日前
記事のアイキャッチ画像
初心者QAエンジニアがプログラミングを勉強する意義
ソーシャルデータバンク テックブログのフィード
はじめにこんにちは!私は文系大学出身で未経験からQAエンジニアを始めた者です!3記事目の投稿になります。今回は未経験QAエンジニアとしてこの業界に飛び込み、コードを勉強するようになった経緯とその感想を記事にしてみました!前回の記事も多くの方に見ていただきました!ありがとうございます!https://zenn.dev/sdb_blog/articles/test-blog-kyoya-001 🤔そもそも最初はなにしてた?そもそもプログラミングについてあんまり(無料講座みたいなものでしか)触れたことがなかった最初に割り当てられた業務はテスターだった。とにかく先輩QA...
23日前
記事のアイキャッチ画像
自作キーボードのすゝめ
ソーシャルデータバンク テックブログのフィード
我々エンジニアが1日で最も触っているもの。それは恐らくPCのキーボードでしょう。キーボードがなければコードは書けず、仕事はできません。このことからキーボードはエンジニアの仕事道具であり、命綱とも言えるでしょう。そしてキーボードにこだわって探求を続けると市販品では満足できなくなり、やがて自作キーボードの沼に沈んでいく様子が散見されます。 そもそもキーボードって作れるの?自分で設計するとなるとそれなりに時間とコストがかかりますが、今は各々が設計したキーボードのキットが売っているので割と簡単に作れます。多少のハンダ付け作業とGUI操作を行えば貴方だけの自作キーボードを作ることが...
1ヶ月前
記事のアイキャッチ画像
ラズパイの監視カメラ映像をネットワーク越しにいい感じに出力した話
ソーシャルデータバンク テックブログのフィード
こんにちは!ラズパイ初心者です。今回はとあるイベントのために監視カメラ化したラズパイからネットワークを通していい感じ(?)にディスプレイに表示した話をします。 いい感じとはいくつかの映像を自動切り替えしたり、映像の上にラーメンの妖精(???)をのせたり、映像に軽くフィルタをかけたり、できるだろうなと思っていてもいざやろうとするとめんどくさい、まぁそんな感じのことです。今回はラーメンの妖精を合成しようと思います。(AR的なアレではないです、上に乗せただけです) ラズパイを監視カメラ化 1. mjpg-streamerを入れるこちらの記事を参考にしました。ありがとう...
1ヶ月前
記事のアイキャッチ画像
初心者ワイがリーダブルコードを読んで変わったこと
ソーシャルデータバンク テックブログのフィード
はじめにこんにちは!ITベンチャー企業で半年間働いている駆け出しエンジニアです👨‍💻今回はコードレビューの質向上のためにリーダブルコードを読んでみました。さて、初心者の僕のコードレビューの質は変わったのか見ていきましょう。※ある程度本の内容は伏せています。詳しくは購入してお読みください! 本のタイトルリーダブルコード 著者名と情報著者名:Dustin Boswell(ダスティン・ボズウェル)情報:サーカスで育てられたが、アクロバットよりコンピュータが向いていることに気づいて、カリフォルニア工科大学で理学士号を取得。コンピュータサイエンスに夢中になる。...
1ヶ月前
記事のアイキャッチ画像
デザイナーインターンとして、たくさん考えて、手を動かして、つくった!!!
ソーシャルデータバンク テックブログのフィード
こんにちは🌤ソーシャルデータバンクのデザインチームでインターンをしている河合です。普段の業務では、Liny のUI改善やデザインシステム構築に関する業務、さらに社内で使うシステムのUIデザインをしています。3月に大学を卒業するとともに、ソーシャルデータバンクのデザインチームのインターンを卒業します🌸1年間で経験できたことやこの会社でのインターンの魅力を記事にしていこうと思います! 1年間で経験できたこと・作ったもの2023年4月からデザインチームでのインターン生として働き始め、ちょうど丸1年ほど在籍していました。その中で自分が担当したプロジェクトや経験したことを紹介します...
1ヶ月前
記事のアイキャッチ画像
PHPでバリューオブジェクト
ソーシャルデータバンク テックブログのフィード
話のはじめに今回はバリューオブジェクトのお話です。メリットなどを主にお伝えできればと思ってます。 PHPにおける型とドメインphpであるかどうかに関わらず、プログラムを書くときにデータを使って演算します。演算とは判断・加工・計算です。この時演算の対象になるものの多くは基本型と呼ばれるものに分類されるでしょう。https://www.php.net/manual/ja/language.types.type-system.phpこの基本型の中でも皆さんが特によく使われるのは整数、文字列、配列、オブジェクトなどでしょうか。これらの基本型はドメインの約束事に従って判断、...
1ヶ月前
記事のアイキャッチ画像
そのプロダクトのデザイン原則、いつ作る?今でしょ!
ソーシャルデータバンク テックブログのフィード
こんにちは!デザインチーム所属のnagaiです。今回は、弊チームが自社プロダクトのデザイン原則を考案した流れについて、どう取り組んできたかご紹介していきます。これからプロダクトにおいてデザイン原則を作成しようと考えている方の参考になればと思います! デザイン原則の必要性まず、デザイン原則とは何か? これについては以前執筆した記事(ワイガヤ方式を活用してデザイン原則を考える)で簡単に紹介しているので、よければぜひご覧ください。 デザイン原則とは?上記記事でも述べましたが、そのプロダクトにおける共通の価値観や思想を示す指針となるものがデザイン原則です。デザイン原則はプロダク...
1ヶ月前
記事のアイキャッチ画像
バリデーションルール最弱決定会議【Laravel10.x】
ソーシャルデータバンク テックブログのフィード
!本記事は可能な限り客観的な記述を心がけますが、内容はあくまでも個々の見解に基づいています。評価の対象であるフレームワークへの否定的な意図は一切ありませんので、軽い気持ちで読み進めていただければ幸いです。今回はShimadaさんをお呼びしました。(以下「島」)今回のメンバーと主な実績snmatsuiLaravel歴8年Laravel5.1→8.xへのアップグレード主導laravel/frameworkへPR採用ShimadaLaravel歴3年社内表彰獲得(2024/03)2人合わせて合計10年以上のLaravel開発経験を持つ私たちがL...
1ヶ月前
記事のアイキャッチ画像
Playwrightの並行実行の設定を見てみよう
ソーシャルデータバンク テックブログのフィード
こんにちは!saimyonです👶今回はPlaywrighの並行処理について書きます🎭 なんで?Playwrightの強みの1つであるテストの並行実行ですが、深く考えずに使っていたらハマってしまいました…そこから、公式ドキュメントを読んで実験をしてみて理解を深めたので、その結果を記事にしている次第です。 並行実行に関する設定Playwrightでは、複数のテスト(テストファイル)を、複数のworkerによって並行実行することが可能です。公式のParallelizeのページに書かれている並行実行に関する設定は主に2パターンです。configファイル内のfullyPara...
1ヶ月前
記事のアイキャッチ画像
VueのdefineModelの使い方
ソーシャルデータバンク テックブログのフィード
Vue3 の defineModel 便利ですよね!使い方を見ていきましょう! 基本的な使い方子コンポーネントで defineModel を使うことで、簡単に双方向バインディングを書くことができます。今までは defineProps と defineEmits に定義しなければならなかったのが、1 つにまとまって書きやすくなりました。素敵ですね!下記に親子コンポーネントで v-model で値のやりとりをし、子コンポーネントのボタンをクリックすることで値が増える例を示します。Child.vue<script setup lang="ts">const mo...
1ヶ月前
記事のアイキャッチ画像
Vue DevToolsに表示されるvue-routerを見てみる
ソーシャルデータバンク テックブログのフィード
Vue Devtools 便利ですよね。その中でも vue-router はどんなことが表示されているか見ていこうと思います。 vue-router で設定されたパスが確認できる!vue-router で設定されたルーティングを確認できます。どんな内容が表示されるか詳しく見ていきます。path設定したルートの path が表示されますname設定したルートの name が表示されます。その他このルートの状態(exact、active)や、リダイレクト先が表示されます。また、vue-router の GitHub をみると、他にも alia...
1ヶ月前
記事のアイキャッチ画像
自作コマンドの作りかた
ソーシャルデータバンク テックブログのフィード
ふと自作コマンドの作り方が気になったので、調べてみました。 要約コマンド保存用ディレクトリを作るPATHを通すコマンド内容をShellScriptで書く権限を与える 作成方法 コマンドファイル保存用ディレクトリを用意する今回は個人用のコマンドと仮定してホームディレクトリ直下に作ります。システム全体で使用するなら /usr/local/bin 配下にすべきか?ディレクトリ名はcommandsにしました。$ mkdir ~/commands PATHを通すシェルの設定ファイルにPATHを通します。zshなら~/.zshrc、Bashなら~/.bash_p...
1ヶ月前
記事のアイキャッチ画像
機能廃止という痛みを伴う仕事
ソーシャルデータバンク テックブログのフィード
はじめに初めまして、ソーシャルデータバンク企画チームの塩浦です。機能廃止という仕事は痛みを伴います。新機能を出すことの3倍くらいの労力と根気が必要な作業です。一方で、常に向き合い続けていくべき、価値のある仕事だと思っています。私も何度か(そして現在進行形で)機能廃止の開発を行なっています。備忘的に、機能廃止開発に取り組む中での苦労や学びを記事にしておこうと思います! なぜ機能廃止するのかそもそも、なぜわざわざ機能を廃止しなければならないのでしょうか?弊社では次のようなパターンがありました。費用対効果が低い(ex)利用率は低いのに、データベースへの負荷が高くボ...
1ヶ月前
記事のアイキャッチ画像
防げ! 情報流出! - レースコンディションについて
ソーシャルデータバンク テックブログのフィード
はじめに今回は、マルチスレッドプログラミングにおけるレースコンディション問題についてです。プログラマやエンジニアならば一度はこの問題を見聞きしたことがあるのではないでしょうか。説明のために簡略化されたレースコンディションのコードはよく見るし、その時は納得するのだけど、、実際の業務アプリケーションを書くときに意識できるのか、、、コードレビューを担当する際には問題を見つけることができるのか、、、、 サンプルアプリケーションコードなるべく小さく、でも実際の業務アプリケーションに近いようなサンプルコードを用意しました。以下は問題のあるサンプルコードです。どこに問題があるので...
1ヶ月前
記事のアイキャッチ画像
Allowed memory size of *** bytes exhaustedエラーが出た!?
ソーシャルデータバンク テックブログのフィード
■ はじめにこんにちは。エンジニアの西崎です。最近、大規模なデータの一括操作でメモリ上限に達する問題あり、そちらの解決策について調べたので、記事にまとめていきたいと思います。Laravel を使用して大規模なデータセットを処理する際に、メモリ上限に達する問題を解決するための効果的な方法があります。この記事では、それぞれの方法を実際のサンプルコードとともに紹介します。 ■1. Eager Loading を使用する関連データを取得する際、Eager Loading を使用することで一度にまとめて取得するようクエリを最適化します。Eager Loading の最適化にはw...
1ヶ月前
記事のアイキャッチ画像
Httpファサードを使って、外部APIのモックテストを作りたい!
ソーシャルデータバンク テックブログのフィード
インターン生の望月です。つい最近外部APIを使用する部分のテストを作成しました。テストを書き慣れていないことと、外部APIとの通信方法の部分がいまいち理解できていなかったこともあり苦戦しましたが、LaravelでのHttpファサードを用いたテスト方法を少し理解できたのでまとめてみようと思います。 0. 概要Http::fake()でモックできるのはHttpファサードを使用したリクエストのみ(GuzzleHTTPクライアントでのリクエストやリダイレクトはモックできないよ!)fakeメソッドで静的なAPIレスポンスを設定する場合には引数にarrayを、動的なAPIレスポンスを...
1ヶ月前
記事のアイキャッチ画像
データ分析基盤を作る DBのS3エクスポート編
ソーシャルデータバンク テックブログのフィード
こんにちは、zinです🦑分析基盤を作るにあたり、まずは弊社サービスLinyのメインデータベース(Aurora MySQL)をAthenaでクエリできるようにしよう!ということでAuroraのS3エクスポート機能を使ってみました。S3エクスポートを使うための準備や、やってみてわかったことなどをまとめておこうと思います。やることは大まかに以下の3点、Glue Crawlerについてはハマりどころはなさそうだったので、S3エクスポートと後処理について書きます。AuroraのS3エクスポートを使ってデータをS3に吐き出す細かいParquetをまとめなおすGlue Crawlerでス...
1ヶ月前
記事のアイキャッチ画像
LinyのCSVインポートで大きいCSVファイルを分割してアップロードしてみる
ソーシャルデータバンク テックブログのフィード
LinyのCSVアップロード機能弊社プロダクトのLinyにはCSVエクスポート/インポートという機能があります。Linyで集計した顧客情報をCSVとして出力し別システムに組み込んだり、逆にCSVとしてインポートしLiny上の顧客情報を一括で変更するという便利な機能です。しかし、現状だとこのCSVインポート機能ではアップロード容量の制限があります。CSVエクスポートではその制限以上に出力できるため、エクスポートしたデータをそのままインポートできないということも稀に発生します。今回はこのCSVデータを分割して、Linyへアップロードできるようにしてみます。 LinyのCSV...
1ヶ月前
記事のアイキャッチ画像
障害対応を一人のヒーロー'だけ'に押し付けるのを辞めるためにしたこと
ソーシャルデータバンク テックブログのフィード
はじめに障害対応をマネージャーとして関わっていると、一部の頼もしいテックリードが障害という困難を乗り越えて解決してくれる事象をポジティブな気持ちのみではみていられません。ヒーローはいつでも障害時に駆けつけてくれて、解決してくれるばかりではありません。ヒーローは、いつしか障害という困難を押し付けられて孤独になりヴィランに堕ちてしまったり、去って二度と戻ってこないこともあるでしょう。今回は、こういった望まない未来にならないように取り組んだことを振り返ってみたいと思います。 過去の失敗私の経験として、これらのヒーローに頼り切った状態を放置した結果、以下のような経験をしました。...
1ヶ月前