タグ

ブックマーク / techracho.bpsinc.jp (30)

  • TypeScriptにヤバい機能が入りそうなのでひとしきり遊んでみる|TechRacho by BPS株式会社

    こんにちは。yoshiです。 先日(9月1日)にオープンされた TypeScript のプルリクエストがヤバいわよ!という話をします。 ※※※注意ここから※※※ 一応先に言っておきますと、これからする話はまだ PR 段階なのでそのまま取り込まれるかどうか分からないし、どのバージョンでリリースされるかも分かりません。ここで書いていることはリリース時には仕様が変わっている可能性は大いにあり、リリース後に検索等でこの記事にたどり着いた方は、もっと良い解説がどこかにあると思うのでそちらを参照することをおすすめします。 ※※※注意ここまで※※※ 該当の PR はこれです。 Template string types and mapped type 'as' clauses by ahejlsberg · Pull Request #40336 · microsoft/TypeScript この PR

    TypeScriptにヤバい機能が入りそうなのでひとしきり遊んでみる|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2020/09/05
  • 書籍『Go言語でつくるインタプリタ』を写経してみた|TechRacho by BPS株式会社

    今さらながら『Go言語でつくるインタプリタ』のとおりにMonkey言語を作ってみました。個人的に名著だと思います。 実際に買ったのはKindleの日語版です。 英語版はこちら。 公式サイト↓には既に続編の「Writing A Compiler in Go」もありますので、こちらもそのうちやってみたいです(やってます)。 サイト: Writing An Interpreter In Go | Thorsten Ball サイト: Writing A Compiler In Go | Thorsten Ball 同書の特徴 同書の大きな特徴は「読みながら実際に作ってみる」ことを主眼においていることです。 それなりの規模のプログラミング言語を作ろうとすると、昔は(今でも)yaccやlexといったツールを使うことがよくあったようです(なおRubyの場合はbison(yaccの実装のひとつ)以外は

    書籍『Go言語でつくるインタプリタ』を写経してみた|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2020/07/18
  • docker-composeを便利にするツール「dip」を使ってみた|TechRacho by BPS株式会社

    更新履歴 2019/11/27: 初版公開 2020/05/01: サブコマンド実行部分に追記 2021/04/14: dip 7.0に合わせて更新 2021/07/16: docker-composeコマンドをdocker composeに置き換え dipとは dipは、Rails開発会社のEvil Martiansのメンバーが作った、docker-composeでの作業を能率的に行えるツールです。dipはDocker Interaction Processの略だそうです。 dipはRubyで書かれているのでRuby実行環境が必要です。元々Rails向けに作られたツールのようですが、Evil MartiansのReactアプリにもdip.xmlがあることからわかるように、Railsに限らず一般のdocker-composeでも使えます。私の場合はローカル開発環境でのみ使っています。 追記

    docker-composeを便利にするツール「dip」を使ってみた|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2019/11/28
  • HTML5のLocal Storageを使ってはいけない(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Randall Degges - Please Stop Using Local Storage 原文公開日: 2018/01/26 著者: Randall Degges 日語タイトルは内容に即したものにしました。 画像は元記事からの引用です。 初版公開: 2019/10/19 追記更新: 2024/04/05 -- リンク情報を記事末尾に移動しました 気で申し上げます。local storageを使わないでください。 local storageにセッション情報を保存する開発者がこれほど多い理由について、私にはさっぱり見当がつきません。しかしどんな理由であれ、その手法は地上から消えてなくなってもらう必要がありますが、明らかに手に負えなくなりつつあります。 私は毎日のように、重要なユーザー情報をlocal storageに保存す

    HTML5のLocal Storageを使ってはいけない(翻訳)|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2019/10/09
  • iOS 13における必須対応について(更新版)|TechRacho by BPS株式会社

    更新情報 2019/08/28: 初版公開 2020/11/25: 各項目について現在の状況を追記 ⚓ はじめに こんにちは、主にiOSアプリの開発を担当している川島と申します。 iOS 13のリリースが間近に迫りつつあり、またWWDC2019ではSwiftUIを始めとした新しいツール等の発表、ARKit2やCombineフレームワークなどの発表などにより、昨今のiOS界隈が盛り上がりを見せています。 そうした新しいツールや技術が登場する反面、Appleはバッサリとした互換切りや新技術への対応を短期間で強いる傾向にあり、既存プロジェクトの保守などをしているiOSアプリエンジニアはこの時期に頭を悩ませる人が多いのではないでしょうか。 2年前のSafeArea対応なんかは記憶に新しいですね。 今年もそうした「〇〇対応が必須」のような情報はチラホラと聞きますが、断片的な情報が多い印象です。 この

    iOS 13における必須対応について(更新版)|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2019/08/29
  • Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社

    こんにちは、hachi8833です。社内Slackで見かけたmorimorihogeさんの以下の書き込みで目から鱗が落ちました。 ~/.bashrcで何かを出力してしまうと、rsyncなどのsshパイプで問題が生じることがあるそうです。 参考: 知らないとrsyncでもハマるシェル初期化 - Qiita これをきっかけに、できるかぎり一次情報を元になるべく一般的になるようにまとめてみました。 シェルスクリプト(.bashrcや.bash_profileなども含む)はあまりに自由に書けてしまい、LinuxディストリビューションやmacOSによって作法がまちまちだったりするので、外してはいけないポイントがどこかを知りたかったのでした。 対象はbashとsh(Bourne Shell)に限定します。また、デスクトップGUIの設定ファイルについては最小限にとどめます。 bashのmanページ 元記

    Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2019/06/07
  • RuboCop作者がRubyコードフォーマッタを比較してみた: 後編(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The Missing Ruby Code Formatter | Meta Redux 原文公開日: 2019/03/30 著者: Bozhidar -- RuboCopの作者です サイト: Meta Redux語タイトルは内容に即したものにしました。記事が長いので3分割いたしました。参考までに、元記事の後にtestdouble社のstandard(standardrb)というgemも登場しています↓。 2019/06/05: 初版公開 2023/04/12: 更新 パーサー選択の影響 ここからは、うんとテクニカルな方面に舵を切りますので、ご自由に読み飛ばしていただいて構いません。ツールを支えるパーサーライブラリをどう選択するかについて議論したいと思います。パーサーにはさまざまな選択肢がありますが、実用上はRuby組み込み

    RuboCop作者がRubyコードフォーマッタを比較してみた: 後編(翻訳)|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2019/06/06
  • もうひとつのGUI diffツール「Beyond Compare 4」|TechRacho by BPS株式会社

    GUIのdiffツールにはさまざまなものがあり、Gitに特化したSourcetreeなどを別にすれば、非エンジニアも使える高機能な汎用ツールとしてはWinMerge(無償)がよく使われているかと思います。しかし惜しいことにWinMergeはWindowsでしか動作しません😢。 winmergejp.bitbucket.ioより ここでは、もうひとつの選択肢として、Beyond Compare 4というツールをご紹介します。 サイト: Download Beyond Compare scootersoftware.comより 有償だが、30日間無料で使える 期間ではなく、起動した日数の合計なのが地味にありがたいです。 Mac/Win/Linuxで使える UIが日語化されている 前職で長年使っていましたが、改めて個人的に購入しました💰。diffツールはWebアプリでは実現しづらいので(特

    もうひとつのGUI diffツール「Beyond Compare 4」|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2019/01/30
  • コーディングスタイルで社内が揉める理由(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Why We Argue: Style — Sandi Metz 原文公開日: 2017/06/01 著者: Sandi Metz -- 名著『オブジェクト指向設計実践ガイド』の著者です。 記事は私のChainline Newsletterで最初に公開いたしました。 私は長年の間、コードのことで議論になるのはなぜなのか、そして決定的にい違う意見を建設的な方向に転換する方法はないものかと模索してきました。 私の見解は、非常に特異な文脈の中から生まれました。私は、ありとあらゆる業種の企業に出向き、数日間に渡るオブジェクト指向設計の講義を年に10回から12回は繰り返しています。私は部外者ではありますが、そうした場所で数日間を過ごすだけでも企業の裏舞台の一端を垣間見られます。 そのときに気づいたのですが、ある場所では誰もがおおむね幸せ

    コーディングスタイルで社内が揉める理由(翻訳)|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2018/05/18
  • Service Objectがアンチパターンである理由とよりよい代替手段(翻訳)|TechRacho by BPS株式会社

    近年、RailsアプリにService Objectを追加するメリットを説く記事が次から次へと量産されています。私は記事において、それがなぜ正しくないかを述べたいと思う次第であります。もっとよい方法はあるのです。 私はこれまで、Service Objectに関するネット上の議論にときおり参加しては、問題に対するまっとうな解決方法としてService Objectが正しくない理由について繰り返し見解を述べてきました。実際、私は多くの場合においてService Objectよりもっとよい解決方法があると考えるのみならず、Service Objectはオブジェクト指向設計原則への配慮が損なわれている兆候を示すアンチパターンとして取り扱っています。 このような深遠なポイントを細切れのツイートやコメント欄を追って理解するのは大変です。そこで私は、私の見解を正確に表すいくつかの現実的なコードを詳しく

    Service Objectがアンチパターンである理由とよりよい代替手段(翻訳)|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2018/05/05
  • JavaScript: Reduxが必要なとき/不要なとき(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: When (and when not) to use ReduxLogRocket 原文公開日: 2018/01/20 著者: Christian Nwamba サイト: LogRocket 2018/03/13: 初版公開 2021/06/03: 更新 Reduxが登場するまで、複雑なタスクを組むときのステート管理は相当つらい作業でした。Reduxは、Fluxというアプリケーションデザインパターンにヒントを得て、JavaScriptアプリでステートを管理するために設計されました。ReduxReactと併用されることが多いのですが、ReduxはjQueryやAngularVueといった別のフレームワークとも併用できます。 Reduxのサイズは非常に小さい(依存関係も含めてわずか2KB)にもかかわらず、アプリの各コンポーネ

    JavaScript: Reduxが必要なとき/不要なとき(翻訳)|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2018/03/14
  • 開発チームを苦しめるマイクロサービス(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Microservices Will Mess Your Team Up 原文公開日: 2018/01/10 著者: James Thompson 「なぜAmazonはマイクロサービスに舵を切ったのか?」も参考にどうぞ。企業のトップが経営判断としてマイクロサービスを強力に推進したことが重要であると思えます。 マイクロサービスは多くのチームで人気を博しています。しかし、ソフトウェア開発のパターンは、このアーキテクチャパターンの周辺で今も流動を繰り返しています。このギャップはここ数年で相当埋められてきましたが、それでも質の低い実装を生産するチームがあまりにも多すぎます。 マイクロサービスは、しばしばモノリシック(一枚板)アプリの対極に位置づけられます。この対比は有用な反面、素朴に過ぎるとも言えます。マイクロサービスというソフトウェア設

    開発チームを苦しめるマイクロサービス(翻訳)|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2018/02/11
  • 現場で使うansible|TechRacho by BPS株式会社

    弊社でのansible活用例について記事にしてみました。 記事は弊社での運用例なので、どの組織にも適用できるかは分りませんが、何かの参考になれば幸いです。 目次 リポジトリの作り方 2種類のリポジトリを作成する 利用例 playbook作成規約 READMEに以下のことを書く 設定できる変数はroleリポジトリのdefaultsに書く roleリポジトリの変数は role名 + _(アンダーバー)で始める 運用時のコツ ansibleで設定したサーバをどう管理するか 汎用的にしようと無理をしない roleの切り出し方について サーバのコピーに使わない よく分からないroleは実行しない まとめ リポジトリの作り方 最初に、ansibleのリポジトリをどのような方針で作っているかを書きます。 2種類のリポジトリを作成する まず作業のためにansibleのplaybookを保存するリポジトリ

    現場で使うansible|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2014/12/25
  • [翻訳] Dockerについてよくある勘違い|TechRacho by BPS株式会社

    こんにちは、hachi8833です。今回は弊社システム管理者のyamasitaさん監修のもとで、Matt Jaynes氏のDocker Misconceptionsを翻訳いたしました。それなりに文言を最適化してあり、原文と一対一対応しているとは限りませんのでご了承ください。エラーがありましたらお知らせいただけると助かります。 Dockerについてよくある勘違い Matt Jaynes 元記事: Docker Misconceptions Dockerは最近のシステム管理業界で大変な脚光を浴びてます。これによるシステム管理の進歩ははかりしれないものがありますが、いくつか重要な点で勘違いしている人を見かけます。 分野を限定して語っているのでよろしく この記事で説明する内容は、主にWebサービスにおけるミッションクリティカルなシステムのマルチホストセットアップに限定しています。Dockerをそれ

    [翻訳] Dockerについてよくある勘違い|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2014/06/17
  • chefからansibleに乗り換えた5つの理由|TechRacho by BPS株式会社

    1年くらいchefを使ってサーバ構築をしていたのですが、最近ansibleに乗り換えたので紹介記事を書いてみます 1. サーバ側に何もインストールする必要がない chefは管理対象ノードにchef-clientをインストールする必要がありますが、ansibleはPython 2.4が入っていて、sshでログインできればOKです。 chefもパッケージや,knife bootstrapコマンド等があるので始めやすいですが、何もする必要がないansibleの方が敷居が低いのかなと思ってます。 例えばsshでログインできれば、以下のコマンドを打てば10.0.10.1~10.0.10.3サーバの情報をとってくれます(カーネルバージョン,CPU,メモリ,ディスクサイズ,ディストリビューション等)。 この機能はchefで使われているohai相当のことをしてくれます。 echo 10.0.10.1 >

    chefからansibleに乗り換えた5つの理由|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2014/05/30
  • 社員数名の開発会社がエンジニア20人採用するためにやってみたこと|TechRacho by BPS株式会社

    続編はこちらです:社員数名の開発会社が20人採用したあと黒字をキープするためにやったこと 約2年前の今頃、弊社はこんな状況でした。 学生アルバイトだけは今も昔も一杯いるけど、優秀な学生であっても仕事経験がないと戦力計算は難しい。一部の仕事デキル人たちがすべてを回していて、仕事は一杯あるんだけど仕事できる人が足りない状態でした。 というわけで、売上の10%程度である1000万くらいのキャッシュを投入して全力で採用活動してみました。社内人員の動きも含めると計15%かな?大事になパートナー探しですからね。しっかりやるとしっかり時間とられます。 試してみたこと+感想 社員に紹介をお願いしてみた 紹介で入社した場合のインセンティブを設定してみました。紹介したほうに20万円。紹介された方にも20万円。そもそも全員知り合いは片っ端から連れてきていたので紹介料を設定しても最初は意味はなかったですね。でも、

    社員数名の開発会社がエンジニア20人採用するためにやってみたこと|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2014/04/26
  • チーム開発においてGit初心者が踏みがちな地雷まとめ|TechRacho by BPS株式会社

    morimorihogeです。残暑やばい。 ※元々は2014年に書いた記事ですが、2020年になっていろいろと事情も変わっているので2020年revise版として更新しました。 弊社ではバージョン管理システムにGitを使っています。 数ヶ月以上一緒にやっているある程度ツーカーなメンバーだけのプロジェクトなら問題無いのですが、案件によっては協力会社の方が一時的にJOINしたり、新規参入メンバーの参加などで、これまでGitを使ったことがない、または格的なチーム開発でGitを使ったことがない人が参加することもあります。 ※2020年現在では流石に全くGitを使ったことのない開発者というのはほぼ見なくなりましたが、チーム開発できちんと運用に乗せて使ったことがない、という所は今でもそこそこあるようです。 Gitは自由度の高いシステムですが、その分概念を覚えることが必要なため、導入の敷居が高い方だと

    チーム開発においてGit初心者が踏みがちな地雷まとめ|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2014/04/26
  • ぐにゅぐにゅ動く直感的なGitクライアント ungit|TechRacho by BPS株式会社

    ungitはnode.jsで動くグラフィカルなgitクライアントです Learn Git Branchingみたいな直感的なGUIで操作できるので とても分かりやすいです インストール 今回はnvmを使用してnode.jsを入れます $ git clone git://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh $ nvm install v0.10.22 $ npm install -g ungit $ nvm use v0.10.22 ログイン時も有効にしたい場合は.bashrcに以下のように書いておきます if [ -d $HOME/.nvm/ ] then source ~/.nvm/nvm.sh nvm use v0.10.22 > /dev/null fi 起動 以下のコマンドで

    ぐにゅぐにゅ動く直感的なGitクライアント ungit|TechRacho by BPS株式会社
    tuki0918
    tuki0918 2013/11/23
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
    tuki0918
    tuki0918 2013/11/20
  • Jenkinsで特定のプロジェクトだけ閲覧できるユーザを作成するには|TechRacho by BPS株式会社

    morimorihogeです.ちょっと前回から間の空いた投稿になってしまいました.今回はJenkinsの話. Jenkinsの概要 JenkinsはTDD,BDDなどを使い,自動テストでCI(Continuous Integration)を回していく際に使えるCIサーバです.同等の物としては,GithubにおけるTravis CIやGitLabにおけるGitLab CIなどが挙げられます,ちなみにJenkinsは昔はHudsonという名前でした. Jenkinsの特徴としては,歴史が長いので動作自体の安定性や導入実績が十分にあること(枯れている),WARコンテナにまとまっているのでインストールが割と楽,プラグインが豊富にあり,機能拡張がやりやすいことなどが挙げられます.Travis CIはGithub専用ですし,GitLab CIは導入実績の面でまだ試行錯誤が必要そうなことや,GitLab

    Jenkinsで特定のプロジェクトだけ閲覧できるユーザを作成するには|TechRacho by BPS株式会社