ほぼ独学・未経験者がモダンな技術でポートフォリオを作ってみた【Rails / Nuxt.js / Docker / AWS / Terraform / CircleCI】RailsAWSCircleCITerraformNuxt はじめに こんにちは! akiと申します! 当記事はほぼ独学・未経験者がモダンな技術でポートフォリオ(以下PF)を作ってみたので、ご紹介させて頂きたいと思います。 昨今、未経験者がモダンな技術を使用して作成した、PFの作成記事も多く存在するので、何番煎じかにはなってしまいますが、この記事も同じ初学者の方の参考になれば幸いです。 自己紹介 私は22歳・高卒で、現在(2021年3月時点)も工場で製造の仕事を続けております。 そんな私ですが「Webエンジニア」という職種に興味を持ち、2020年4月よりプログラミング学習を開始しました。 今回紹介するPFの作成期間は約3ヶ
https://github.com/Songmu/gotesplit gotesplitというかなり便利なツールを書いた。Goのテストをいい感じのサブセットに分割して、それを実行するものです。このアプローチで、社内のテストを15分から3分くらいまでに短縮しました。 これを使えばCI環境での高速なテストの並列実行を簡単に実現できます。 実例 CircleCIやGitHub Actions上で簡単に導入できます。 CircleCIの場合 parallelism: 5 docker: - image: golang:1.15.3 steps: - checkout - run: command: | curl -sfL raw.githubusercontent.com/Songmu/gotesplit/main/install.sh | sh -s bin/gotesplit ./... -
概要この記事はCircleCI Advent Calendar 2020の9日目の記事です。 スタディスト開発部の笹木です。今年に入ってからは開発基盤チームという位置づけで、開発環境の整備や、CI含むテスト自動化周りを担当しています。 本記事では、RSpecのテスト実行時間を半減させ、CircleCIの消費クレジットを大幅削減した取り組みについてご紹介します。(消費クレジットについては後述します) 改善の結果が以下のグラフで、定点観測しているジョブの消費クレジットが、ピーク時の半分にまで落とせていることがわかります。もちろんテストコードを減らすといった本末転倒なことはしていません。 RSpecジョブ実行時の、CircleCI消費クレジットを時系列で表したグラフ実施した取り組みは以下の通りです。 CircleCIの料金体系を知る問題を認識するCircleCIの利用状況を可視化するRSpecの
初心者でも分かりやすい関数とテスト、そしてCircleCIの設定ファイルで解説していきます。 今回のファイル構成はこのようになっています。 . ├── requirements.txt ├── src │ └── a.py └── tests ├── __init__.py └── test_a.py まずはじめに、簡単に数値計算する関数を書きます。 src/a.py def b(a, b): return a * b 次に、テストをする関数を書きます。 test_a.py from src.a import b def test_b(): assert 2 == b(1, 2) ようやくお待ちかね、CIrcleCIの設定ファイルを書きましょう。コメントアウトで簡単な説明を書いたので、わかりやすいかと思います。 これが今回の設定ファイルです。 詳しくはCircleCIのサイトを見てくだ
ここでやること ここでは、コンテナで動かすWebアプリケーションを作成し、アプリケーションのCIの設定までをおこなう。CIでは、テスト、Dockerイメージのビルド・イメージをECRへプッシュするところまで実施して準備を確認する。 イメージをビルド docker build -t djangoproject:ver1 . 8000ポートでコンテナを起動 docker run -itd --name djangoproject --mount type=bind,source="$(pwd)"/code/,target=/code/ djangoproject:ver1 djangoプロジェクトをスタート docker exec djangoproject djang-admin startproject djangoproject /code/project helloappアプリをスター
あまり見ない気がするので書きました。特徴は、 lint, testなどの各ジョブが並列に動く(ジョブ実行数を多くしてないとdocker containerの立ち上げ分むしろ全体時間はロスになることもあるが…)。 Travis CI のマトリクスビルド に近いことを、 parameters: を使ってやっている。 rust-toolchain ファイル に書かれたバージョンと、 .circleci/config.yml に書かれた MSRV (Minimum Supported Rust Version) の2つでビルドしている。 cargo-readme を使ってrustdocとREADMEを比較し、どちらかがメンテされていない場合にエラーにする(お好みで)。 キャッシュ使う。 あたりです。見慣れなさそうなところはインラインコメント付けましたので参考にしてください 💁♀️ 更新履歴 2
はじめに コンテナイメージのセキュリティ診断ツール「Dockle」を正式にリリースしました。コンテナイメージから特に危険な項目をチェックするとともに、イメージに保存されているコマンド履歴をもとにベストプラクティスに沿ったコンテナイメージが作れているかも確認できます。 https://github.com/goodwithtech/dockle 導入まで インストールしたら、あとはイメージ名を指定すればOKです。 他には何も用意する必要がありません。そう、Dockerすら不要です。 各OSでのインストール手順はこちら。 プライベートレジストリにも対応してます。プライベートレジストリのイメージを利用する方法はこちら。 Dockleの公式イメージも用意してます。利用方法はこちらをご確認ください。 実行結果は、以下のようにでます。 問題なければ 「PASS」が表示されます。 特徴 Dockleの特
サーバーサイドエンジニアのいわむ(@k_iwamu)です! 実は来月AWS re:Inventに参加してきます!弊社は海外カンファレンス補助が充実しているので、そういった配慮に感謝してたくさんのことを学んできます! さて、社内ではFammを中心としたいくつかのサービスや社内システムで複数のAPIが開発されています。会社の規模も大きくなるにつれ、それぞれのサービスを社内のエンジニアで分担しながら作っています。 そうした中で、2つの課題があげられるようになりました。 - サービスごとにAPIドキュメントの運用方法やフォーマットが統一されておらず、管理が難しい状況になっている - APIドキュメントをホスティングするためにサーバーが立ち上がっており、その管理も必要になっている そこで考えられた方針が、Swaggerを使ってドキュメントを統一化し、S3を使ってホスティングする方法です。理由は以下で
この記事は Python Advent Calendar 2016 24日目の記事です。今回はPythonのデバッグのTipsをいくつか紹介します。 print()でデバッグ print()関数を使って確認したい値をstdoutに出力することでデバッグします。これで解決できるのであれば、それに越したことはありません。 FizzBuzzをデバッグします。今回は1から20までの数値を使ってFizzBuzzを出力したいとします。以下のコードには明らかなバグがあります。わかりますか? example_fizzbuzz_buggy.py:: for ii in range(1, 21): if ii % 3 == 0: print('Fizz') elif ii % 5 == 0: print('Buzz') elif ii % 15 == 0: print('FizzBuzz') else: pr
Nuxt.jsでプロジェクトをはじめるときにいつもやることが整理してみた。 モジュールが多いので、いろいろ設定が必要だけど、ヌケモレあったりするので。。 Nuxt.jsのバージョンは、2.5.1です。 いつもやることの概要 作成したいプロジェクトは以下な感じ TypeScript/Sassを使う、UIはBuefy/Bulma Firebase Hosting / Cloud Functionsを使ってSSR 英語版/日本語版と国際化したいので、nuxt-i18nも入れる SEOも気にするので、各種設定&各ページで個別にタイトルとかを設定 Google Analyticsやsitemapなどももちろん Firebaseへのデプロイは、CircleCIで自動化したい 最終的な例は、GitHubにおいています。 Nuxt.js Template using TypeScript, Sass an
Go言語で作るJson Web Tokenを用いたセキュアなAPIをインフラ構築自動化技術を用いて(Docker, Terraform, Ansible)構築GoCircleCIDockerAnsibleTerraform 初めに 著者はGo言語、インフラ構築自動化技術に関する知識はあまりないので、知識のある上級者は適切なアドバイスなり、間違いの指摘をして頂けると幸です。 このようなシチュエーションを想定しています。 ある日、上司からこんな無茶ぶりが・・・ 「君、優秀なんだね。Go言語が良いみたいだからGo言語でセキュアなAPIを軽く作っておいてよ。ついでにインフラ構築自動化も流行ってるから、導入して実行環境の構築も自動化しといて」 という無茶ぶりされたときにあなたはこのようなまなざしを上司に向けるでしょう。 安心して下さい。そんなあなたのためにこの記事を書きました。笑 冗談はさておき、本
Swaggerについて THE WORLD'S MOST POPULAR API TOOLING 世界で最も人気のあるAPIツール Swagger is the world’s largest framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the entire API lifecycle, from design and documentation, to test and deployment. Swaggerは、OpenAPI仕様(OAS)のためのAPI開発ツールの世界最大のフレームワークであり、APIのライフサイクル全体にわたって、設計から文書化、テストおよびデプロイまでを可能にします。 https://swagger.io 特徴 YAM
はじめに この記事では、リモートレポジトリにpushするたびにLintテストを走らせるように設定を紹介します。 ひとまず導入編 vueスタイルガイド導入編(vue/recommendの活用) ファイルセーブで自動化編(エディタ自動校正機能) コミット度にlintを走らせる編(lint-stagedとhuskey) Circle CIでESLint導入編←本記事 PR前のテストの一環で、この設定をしておくことで、共有リポジトリに取り込む前にLintの確認を行うことができます。基本的には前の記事で紹介した、commit度のlint確認で大丈夫なのですが、その設定が各自のローカル環境で整っていない場合などがあり、その対策として最終の防衛線になります。 プロジェクトは前回から引き続き使用したものを使って行きます。gitのリポジトリ設定や操作方法等については、ここでは詳細に話さないのでご了承ください
JavaScriptで中規模開発を行うためにTypeScript3(とYarn, DefinitelyTyped, Jest, CircleCI)を導入するTypeScriptCircleCIJeststandard はじめに TypeScriptはJavaScriptに静的型付けを導入したスーパーセット(上位互換)な言語です。 静的型付けされるのでJavaScriptより大規模な開発に向いています。 僕自身が小規模案件より中規模案件を担当することが増えてきていて、今後ももっと中規模案件を管理するためにTypeScriptの導入を進めています。 新しい言語ということでまだまだ枯れていないTypeScriptなのですが「2018年現在、とりあえずTypeScript書きたいな」という場面のために何をすれば良いかをまとめてみました。 TypeScript本体は2018年8月時点でバージョン3.
はじめに 今回は、CiecleCIを使ったPythonのテストについて解説します。 この内容に決めた理由は、2つあります。 1つ目の理由は、CircleCIは1ヶ月1,000時間分まで無料で利用できるので、この事実をいろんな人に知って欲しかったからです。尚、無料なのは1並列でLinuxの自動テストをクラウド上で実行する場合に限ります。リポジトリのGitHubは法人でもprivateなリポジトリでも無料ですが、テストを並列で行ったり、MacOSでテストする場合は有料となります。 CircleCIは、リモート上のGitHubへプログラムを更新すると、すぐにCIを実施します。後で説明しますが、この手順には、CircleCIのアカウントを登録して、GitHub上のリポジトリを選んで、簡単な設定ファイルを準備するだけです。それだけで自分のPCのリソースを使わず、テストを実施することができます。 私は
はじめに GitLab CI/CDとCircleCIの違いを比較する記事です。 GitLab CI/CDって何? GitLab has integrated CI/CD pipelines to build, test, deploy, and monitor your code Rated #1 in the Forrester CI Wave™ Forresterに認められたNo.1 CIサービス。 GitLab supports development teams with a well-documented installation and configuration processes, an easy-to-follow UI, and a flexible per-seat pricing model that supports self service. GitLab’s
今 Python で Django を使うときにテストについてはこうすればいい、という自分なりの解をまとめました。 方針 manage.py test app1 app2 の形式でテストする (Django の仕組みに乗る) app1/tests/test*.py をデフォルトで全部テストする (app1/tests.py ではなく) coverage は html にして CIサーバーで見られるようにする これらを満たすのは現在のところ django-nose です。 また CI は CircleCI を使うとします。 Django の準備は必要に応じて http://qiita.com/seizans/items/1dc744694c1072e2b8d3 などを参照ください。 CircleCI のアカウント作成などは https://circleci.com/ から、特に難しいこと無く
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く