タグ

mapserver2007のブックマーク (3,190)

  • GolangのContext入門 - 体はドクペで出来ている

    Contextとは何か? Golangには context という標準パッケージがあります(以前は実験パッケージ golang.org/x/net/context でしたがGolang1.7から標準採用されました)。これは「コールグラフの下流をまとめてキャンセルさせたい」「リクエストスコープな値をコールグラフの下流に伝播させたい」という場合に使用します。 Webアプリケーションを作る場合で想定してみましょう。リクエストが来るとHTTPハンドラーが何か値を取り出して関数に渡し、その関数が更に別の関数を呼び、DBから情報を取得したりと諸々の処理を経てユーザーへレスポンスを返すとします。この時何らかのトラブルがあってDBのレスポンスが極端に遅くなるとユーザーはいつまでも待つことになってしまうのでタイムアウトをかけたいですね?しかし真っ当に実装するとchannelをあちこちに持ち回したりしないとい

    GolangのContext入門 - 体はドクペで出来ている
  • 他言語プログラマが最低限、気にすべきGoのネーミングルール

    概要 タイトルの通り、他言語から入門した人が最低限気にするべき、ネーミングルールをまとめました。 対象読者 Goの基構文を理解している人を対象読者としています。 この記事で説明すること、説明しないこと 説明すること Goのファイル名、変数名などの名前付けに関するルールや慣例などを説明します。 説明しないこと 名前付け以外で気をつけるべきGoの書き方[1] がいくつかあります。 しかし、それらに関してはこの記事では説明しません。 筆者のバックグラウンド プログラマ歴はもうすぐ8年程で、Goの他には以下のような言語の経験があります。 JavaScript TypeScript PHP Ruby Java Scala Goは少し前に書いて、一時期書かない時期が続いていましたが、最近また書いています。 トータルするとGoの経験は1年半程度です。 意識すべき名前付けルール package名 利用し

    他言語プログラマが最低限、気にすべきGoのネーミングルール
  • ゲーム企画コンテストPERACONにおける審査員の問題 - じじいのプログラミング

    注意点 「CEDEC2020のPERACONが参加人数が多すぎて、提出物の質が低くなった」という問題については、書いてません。あくまで審査員の質についてだけを書いています。*1 記事を書くにあたって、審査員は匿名で書きたかったのですが、 審査員全員の名前が公開されていて、中途半端に匿名にしても無意味なこと。 根的な問題では、反省はしてなさそう。 審査員にも責任があるべきといっていること。 なので、審査員の実名を出しました。ただ、悪い部分だけをピックアップすることはないように、できるだけ多くのデータを出し、客観的に判断するように心がけました。 はじめに CEDECというゲーム業界のカンファレンスで、PERACONというゲーム企画コンテストがあります。今年からはCESAというゲーム業界最大の団体の人材育成部会で引き取って、毎年人材を育成するという目的で行っていくことになったようですが、これか

    ゲーム企画コンテストPERACONにおける審査員の問題 - じじいのプログラミング
  • マイクロサービスの Saga パターンについて - Qiita

    以前の記事で『Microservice Patterns』について要約したが、その中の一つの Saga パターンについて、もう少し詳しく掘り下げてみる。 どういう文脈で Saga パターンを使うか? 各サービスがそれぞれの Bounded Context (整合性の境界)で自前のデータストア(Database per Service)を持っているマイクロサービスアーキテクチャで、複数サービスにまたがるワークフローのデータ整合性を維持したい。 どういう制約のもとで Saga パターンを使うか? 以下のような事情で、分散トランザクションは使いたくない。 モダンでメジャーな NoSQL やメッセージブローカではサポートされていないものが多い。 CAP 定理の認知度が高まって、Consistency を絶対視する風潮が見直され、Availability をより重視するシステムも増えている。 分散ト

    マイクロサービスの Saga パターンについて - Qiita
  • Go + gRPCによるマイクロサービス構築 - 一休.com Developers Blog

    こんにちは。宿泊事業部の宇都宮です。 最近、とあるマイクロサービスをローンチしました。このアプリケーションの業務的な役割は諸事情により省略しますが、以下のような特性をもっています。 社内の多くのサービスから利用される 一休.com 一休.comレストラン 一休.comギフト 一休.com海外 このサービスが落ちると、主要サービスの予約処理が止まる 😱 想定されるリクエスト数は、平常時で30req/sec、ピーク時には60req/sec程度になります。行う処理はシンプルで、DBにいくつかSELECT文を投げて、ビジネスロジックに沿った結果を返すことです。 また、基盤系のアプリケーションなので、各開発者の開発環境(WindowsMacが混在)でも動作する必要があります。 したがって、このアプリケーションに求められる要件は、 高パフォーマンス 高信頼性 クロスプラットフォームで動作すること

    Go + gRPCによるマイクロサービス構築 - 一休.com Developers Blog
    mapserver2007
    mapserver2007 2020/08/03
    “sql.Open() の結果として取得できる sql.DB 構造体は、一度Openした後はプログラム中でずっと使い回すべきで、Closeを呼ばなければならないことはまれである、とされています。”
  • Go 言語の値レシーバとポインタレシーバ

    「レシーバ」とはGo 言語はある種のオブジェクト指向プログラミング (OOP) 言語であり、 OOP 言語の慣例通り、メソッドを呼び出される対象のことを「レシーバ」と呼びます。 ちなみになぜ「レシーバ」と呼ぶのかというと、昔の OOP 言語の文脈ではメソッド呼び出しのことを「メッセージの送信」と言い、メソッドを呼び出される側は「メッセージの受信側」だからです。 「値レシーバ」と「ポインタレシーバ」Go 言語では「値」と「ポインタ」が明示的に区別されているため、たとえばある構造体に対してメソッドを定義する場合でも、「値型」に対する定義なのか「ポインタ型」に対する定義なのかはっきりと区別しなければなりません。それぞれについて簡単に説明します。 値レシーバ「値型」に対してメソッド定義されたものが「値レシーバ」です。 Go 言語では構造体は値なので、以下の例では Person という値型に対して

  • Goでサーバー開発するときのMakefileを晒してみる - Qiita

    はじめに この記事は、Go3 Advent Calendar の4日目の記事です。 Goで開発する際にはテストの実行やlintの実施といった細々としたコマンドを Makefile にまとめることが多いと思います。 これにはコマンド入力の手間を省くのももちろんですが、チーム内でコマンド実行の方法を統一するという意味もあります。「手元でのテストはReadmeに書いてある通りに実行してね」と伝えるよりも、Makefileにまとまってる方が親切です。 ということで、何番煎じか分かりませんが今回は業務で使っている Makefile を晒してみたいと思います。 ちなみに主に以下のツールを利用しています。 パッケージ管理: dep 自動リロード: realize DB migration管理: goose setup: go get -u github.com/golang/dep/cmd/dep go

    Goでサーバー開発するときのMakefileを晒してみる - Qiita
  • 「未経験文系から3ヶ月でデータサイエンティストになって一発逆転」はここで終わり (2020/7/31 更新) - todo-mentor’s diary

    データサイエンティストを生業にする手段と実態について述べる。 途中、具体例・境界値の例として私個人の話もするが、なるべく一般性のある話をする。 この記事で言いたいことは具体的には4つだ。 プログラミングスクールをディスるなら代わりの入門方法を提供しようよ。 もう「未経験文系から3ヶ月でデータサイエンティストで一発逆転物語」を止めろ。*1 おじさんは人生逆転したいなら真面目にやれ。 若者はワンチャンじゃなくて、ちゃんと化け物になれよ。 この記事についてはパブリック・ドメインとして転載・改変・リンク記載を自由にしてよいです。 (続き書いた) a. 入門は辛いが… b. 思考停止でプログラミングスクールに通うな。 なろう系・始めてみよう系資料一覧 (最速・最短ルート用) まずは動かしてみよう。強くてニューゲームが体験出来るぞ! 入門以前の 一般向け業界 (AI業界と展望がわかる) 技術者入

    「未経験文系から3ヶ月でデータサイエンティストになって一発逆転」はここで終わり (2020/7/31 更新) - todo-mentor’s diary
  • JavaScript Primer - 迷わないための入門書 #jsprimer

    JavaScript Primer 迷わないための入門書 Tweet Watch Star Twitterのハッシュタグ: #jsprimer これからJavaScriptを学びたい人が、ECMAScript 2015以降をベースにして一からJavaScriptを学べる書籍です。 プログラミングをやったことがあるが、今のJavaScriptがよくわからないという人が、 今のJavaScriptアプリケーションを読み書きできるように書かれています。 初めてのプログラミング言語としてJavaScriptを学ぶ人は、まずは「はじめに」から読んでみてください。 書籍版 このウェブサイトの内容はアスキードワンゴから書籍として出版されています。 書籍版の内容はウェブサイト版と同一ですが、として読めるように最適化されています。 書籍版は次のサイトから購入できます。 Amazon 達人出版会(電子書籍

    JavaScript Primer - 迷わないための入門書 #jsprimer
  • 【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ

    システム開発の世界において「技術的負債Technical Debt)」は繰り返し話題になり、しばしば炎上しています。 技術的負債という概念の生みの親は Ward Cunningham (ウォード・カニンガム)です。彼は 1992 年にオブジェクト指向プログラミングの国際カンファレンス OOPSLA '92 の Experience Report でコードの初回リリースを負債に例えました("Shipping first time code is like going into debt")。 Ward Cunningham はソフトウェアの世界に多くの貢献を果たしてきました。Wiki の発明者であり、XP と TDD の父 Kent Beck の師匠のような存在であり、建築の世界の「パタン・ランゲージ」を Kent Beck と共にソフトウェアに輸入した人であり、「アジャイルソフトウェア開

    【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
  • REST APIの設計で消耗している感じたときのgRPC入門 - Qiita

    REST APIによる設計 最近のシステムは様々なデバイスやスケーラビリティを重視するため、各システムを分割し軽量なAPIで連携するマイクロサービス的なアーキテクチャスタイルが増えてきています。 そして、そのAPI連携で広く採用されているのが、REST APIです。 しかし、こうした設計を行っていくには、適切に考慮、選択しなければならないことも多くあります。 URL、パラメータ、エラーなどの設計 各言語ごとのライブラリや、サーバ、クライアントの選定、設計 認証、認可 ドキュメント管理 ユニットテスト、インテグレーションテスト、モック、Consumer-Driven Contracts 開発用ツール 絶対的スタンダードがない状況下で、こういった問題はシステムやメンバーが増えるにつれ複雑化していき、設計や管理、その仕組み作りに時間を取られ、来の目的となるべき機能開発の時間を失っていくことにな

    REST APIの設計で消耗している感じたときのgRPC入門 - Qiita
  • 納期守れない系エンジニアが遅延無しでちょっと頼りにされるまでに学習したこと - Qiita

    初めに この記事は、私が納期をまともに守れなかったころから、 遅延しなくなり後輩の遅延を手助けするまでに 学習したことや心がけていること及び失敗談を記述します。 暇つぶしに読んでいただければ幸いです。 前提:どれぐらいできなかったか ・イケると思った機能が1週間遅延して更にバグまみれ。 ・プロトタイプ版開発に時間をかけすぎて仕様変更によって結局遅延。 ・ユーザーが欲しいと思った機能が、完成とほぼ同時に不要になってしまった。 この記事の内容は、主観と経験に基づくものが多いです。筆者はよく言っても中堅エンジニア なので、記述内容が必ず参考になるとは限りません。 勉強した事 交渉&見積もり編 ・正確な工数見積もりは「不可能」である事を認識する。 実際に機能を作る前には、「だいたいどれくらいでできるのか」という事を絶対に確認されます。 その時に、過去の経験からn日でできるな…と考えても、それはたい

    納期守れない系エンジニアが遅延無しでちょっと頼りにされるまでに学習したこと - Qiita
  • データベース設計の際に気をつけていること - 食べチョク開発者ブログ

    皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。

    データベース設計の際に気をつけていること - 食べチョク開発者ブログ
  • オワコン大手SIerに学ぶアンチパターン - Qiita

    軽い読み物としておもしろおかしく読んでください。 はじめて社外の人の仕事を見た 今まで社内の成果物しか目にしてこなかったのですが、ふとしたきっかけで外部ベンダーが作ったシステムを移行することになりました。 会社名を見て、よく知った会社でちょっと安心しました。 「ここなら設計書とかもきちんとしてるだろう、多少古臭くても堅実にやってるんじゃないかな」って思ってました。ええ。 実態は全然違った とんでもない量のExcel設計書として渡されました。 さすがに設計が専門だけあって設計書の量はすごいなぁ。と思って読んでいるといろいろ察してきました。 正直、「オワコン大手SIer」と呼ぶしかありません。設計しかできないと思っていたのに、何もできないなんて・・・ 実際に自分が見た「オワコン大手SIer」のアンチパターンをご紹介していきます。 自分が多く当てはまっている場合は今すぐ直してください。移行する

    オワコン大手SIerに学ぶアンチパターン - Qiita
  • 現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ - t-wadaのブログ

    この文章の背景について この文章はテスト容易性設計をテーマに 2013/11/26 に CodeIQ MAGAZINE に寄稿したものです。残念ながら CodeIQ のサービス終了と共にアクセスできなくなっていたため、旧 CodeIQ MAGAZINE 編集部の皆様に承諾いただき、当時の原稿を部分的に再編集しつつ、ライセンス CC BY(クリエイティブ・コモンズ — 表示 4.0 国際 — CC BY 4.0) で再公開いたしました。 旧 URL にいただいたブックマークとご意見はこちらです(これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE)。旧記事には当に多くの反響をいただき、誠に感謝しております。 目次 この文章の背景について 目次 出

    現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ - t-wadaのブログ
  • 【転職】7次面接まで行ってシリコンバレーの企業に祈られた話 - 旅ジャーニー

    もう数カ月も前のことですが、タイトル通り”祈られた話”ですw エンジニア以外でシリコンバレー系の企業にトライしている記事が少ないので筆をとりました。 不採用になってしまった事に対して、めちゃくちゃ悔しかったのでブログで成仏します。 ※応募当時はイギリスで働いていました。 現在はドイツに流れつき楽しく働いています。 7次面接まである企業ってどんなところ? 2019年の上場が噂されていた会社です。 この記事を書き終わった頃には上場してるかもしれないし、してないかもしれません。 一旦A社としておきます。 多少濁しながらライフログしていきます。 応募。ことの始まり LinkedInでInnovation Teamのマネージャー求人を見つけた。 Job descriptionを読んでいくと、意外と自分とマッチするんじゃね?と勘違いする。 カバーレターは書かない派だけど、必至事項で直接応募フォームに記

    【転職】7次面接まで行ってシリコンバレーの企業に祈られた話 - 旅ジャーニー
  • 「エンジニアリングをもっと理解してくれ」はダメ!? 伊藤直也氏に聞く、ビジネス界で重宝されるエンジニアとは

    sponsored by ハウテレビジョン インターネット業界は誕生してからというもの、目まぐるしく変化しながら成長してきた。その影響を大きく受けるのが、いつも業界の中心にいるエンジニア達である。業界の変化とともに、エンジニアを取り巻くキャリアに関する状況も大きく変わってきた。 「ブラック業界」「低賃金」などと揶揄(やゆ)されていたことが嘘のように、今や「ITエンジニア年収1000万円」などとニュースの見出しが並び、なりたい職業ランキング上位にも名を連ねる。あまりに早い変化に、実態がつかめないという方も多いのではないだろうか? ハウテレビジョンは昨年実施したエンジニア向け2weeksサマーインターンに、ハウテレビジョンの技術顧問であり、インターネット業界黎明(れいめい)期から最前線で活躍し続けてきたエンジニア・伊藤直也氏を招き、最新のソフトウエアエンジニアのキャリアについて、ハウテレビ

    「エンジニアリングをもっと理解してくれ」はダメ!? 伊藤直也氏に聞く、ビジネス界で重宝されるエンジニアとは
    mapserver2007
    mapserver2007 2020/06/04
    参考になる。さすがだ。
  • 6年ぶりぐらいにクラウド使った結果、Kubernetes以外のマネージドサービスとか基本要らなくない?となった話 - データエンジニアの酩酊日記

    ここ半年ぐらい、かなり久々にクラウド使ってアプリやバッチの基盤作ったりしてきて、色々と思ったことを書き捨てる。 「ちょっと検証してみた」程度のものも含めれば、AWSGCPは一通り主要なマネージドサービスを触ったし、実際に複数のアプリやらバッチやらをマネージドサービス上で番稼働させて今も運用してるけど、結局DB以外は基全部Kubernetesに乗せるのが一番楽だと強く思うようになった。 Kubernetesは学習コストや運用コストがそれなりに高く付くから安易に採用するのはどうなのか、みたいな論調もあるし、つい半年前までは自分もそう思ってた。サーバレスなマネージドサービスが色々出てきているのに、なんでわざわざKubernetesクラスタなんていう設計、運用に手間のかかるクラスタリングサーバーを立てて管理しないとならんのかと。 だけど、実際にいくつかのマネージドサービス使ってアプリやバッチ

    6年ぶりぐらいにクラウド使った結果、Kubernetes以外のマネージドサービスとか基本要らなくない?となった話 - データエンジニアの酩酊日記
  • 自動テストに限界を感じた私がなぜ形式手法に魅了されたのか - 若くない何かの悩み

    長らく自動テストとテスト容易設計を生業としてきましたが、最近は色々な限界を感じて形式手法に取り組んでいます。 この記事では、既存の自動テストのどこに限界を感じてなぜ形式手法が必要なのかの私見を説明します。なお、私もまだ完全理解には程遠いため間違いがあるかもしれません。ご指摘やご意見はぜひ Kuniwak までいただけると嬉しいです。 著者について プログラマです。開発プロセスをよくするための自発的な自動テストを支援する仕事をしています(経歴)。ここ一年は R&D 的な位置付けで形式手法もやっています。 自動テストの限界 自動テストとは 私がここ数年悩んでいたことは、iOS や Web アプリなどのモデル層のバグを従来の自動テストで見つけられないことでした。ただ、いきなりこの話で始めると理解しづらいと思うので簡単な例から出発します。 この記事でいう自動テストとは以下のようにテスト対象を実際に

    自動テストに限界を感じた私がなぜ形式手法に魅了されたのか - 若くない何かの悩み
  • AWSの膨大で複雑なサービス群をすべて「たった1行」で説明していくとこうなる

    AmazonのクラウドサービスであるAWSは、コンピューティングやデータベース、ストレージなど、膨大で複雑なサービスで構成されています。こうした豊富なサービス群をうまく組み合わせて利用する「ビルディングブロック」がAWSのメリットでもありますが、サービス数が多すぎてなかなか全体像を把握できないのも事実。フリーランスエンジニアでありコンサルタントでもあるジョシュア・テイセン氏が自身のブログで、AWSのすべてのサービスを「たった1行」で説明しています。 Amazon Web Services https://adayinthelifeof.nl/2020/05/20/aws.html テイセン氏によると、Amazon Dashboardから利用可能なAWSのサービスは記事作成時点で163あるとのこと。そのすべてを正確に理解する必要はありませんが、基を押さえておくことはいいことであり、問題の

    AWSの膨大で複雑なサービス群をすべて「たった1行」で説明していくとこうなる