タグ

プログラミングと開発に関するotakumesiのブックマーク (19)

  • A Tour of Goを終えたあなたにおすすめのGoを勉強するためのリソース - すずけんメモ

    今年も夏のインターンで学生にGoの講義をします。多く寄せられる質問が「A Tour of Goを終えたのですが、その後に何をやるのがおすすめですか?」というものです。学生に限らず、言語を学ぶ方はプログラミングそのものに対する慣れやバックグラウンドも違います。そこでなるべくいろんな方の参考になるように、おすすめななりページなり方法なりをまとめてみます。 わりと多くの人におすすめ 「プログラミング言語Go」(Alan A.A. Donovan, Brian W. Kernighan著)です。通称GOPL。 http://www.gopl.io/ 柴田さんによる日語翻訳もあります。 https://www.amazon.co.jp/dp/4621300253 Go言語のイントロダクションから始まり、型・インタフェース・並列性の説明などが丁寧にかかれています。私がGOPLを良いと思う点は、例示

    A Tour of Goを終えたあなたにおすすめのGoを勉強するためのリソース - すずけんメモ
    otakumesi
    otakumesi 2017/12/21
    “The Go Programming Language Specification - The Go Programming Language”
  • The Twelve-Factor App (日本語訳)

    はじめに 現代では、ソフトウェアは一般にサービスとして提供され、Webアプリケーション や Software as a Service と呼ばれる。Twelve-Factor Appは、次のようなSoftware as a Serviceを作り上げるための方法論である。 セットアップ自動化のために 宣言的な フォーマットを使い、プロジェクトに新しく加わった開発者が要する時間とコストを最小化する。 下層のOSへの 依存関係を明確化 し、実行環境間での 移植性を最大化 する。 モダンな クラウドプラットフォーム 上への デプロイ に適しており、サーバー管理やシステム管理を不要なものにする。 開発環境と番環境の 差異を最小限 にし、アジリティを最大化する 継続的デプロイ を可能にする。 ツール、アーキテクチャ、開発プラクティスを大幅に変更することなく スケールアップ できる。 Twelve-F

  • Hello Worldの後に何を作るか - razokulover publog

    新しい技術を学びはじめるとHello Worldのその先で何を作るか詰まってしまうことがよくある。 最初から作りたいものがある人はそれ作ったほうがいいし、実務で導入できたりするなら一番手軽で学びが多いのだが中々そうもいかないのが人生というもの。 そういう人にとってはHello Worldからある程度使えるもしくは番投入時に選択肢にできるレベルになるための道筋があると便利だなーと思う。 自分はWeb系の人間なのでフロントエンド/サーバーサイド/モバイルアプリという感じでまとめてるが、インフラ屋やハード他デザイン系の技術はまた違うと思われるのでこれはあくまでも自分の場合はということで。 共通 言語機能を一通り試す(A Tour of Goみたいな感じで) 基的な型/制御構造/IO周り/クラス/文字列操作/正規表現/よく使いそうな標準ライブラリ その言語固有の機能は重点的に(goだったらgo

    Hello Worldの後に何を作るか - razokulover publog
  • 継続してコードを書くということ

    この度、githubへの一年間連続コミットを達成していたらしいことを確認しました。途中から平日、仕事の分も混ざっているのですが、プライベートでのコミットは毎日確認していたので、ちゃんと一年間継続できているはずです。 当初はどういうものを開発するのか定まっていなかったり、謎の練習コードばっか産まないか心配だったのですが、継続してコミットを続けていくことで、徐々に目的意識を持ってコードを書くのにも慣れてきました。 そこで、この一年でどういう考えで開発過程をたどってきたか、どういうものを開発してきたか、これからどうしたいかについて書こうと思います。 どういう考えで開発過程をたどってきたか最初は継続性のみを重視1年前と今とでは、コードを書き始める時の意識も少し変わったなと、今は思います。 1年前はどんな形であれ継続できるようにコードを書いて、たまにdotfilesいじったりとか、遅くに会社を出ると

    継続してコードを書くということ
  • 量産型プログラマを撲滅したい

    プログラマの生産性の差は、出来る人と出来ない人で10倍とも100倍とも言われる。そんな馬鹿な、と思われるかもしれないが、事実だ。 むしろ、一緒に働かせると、出来るプログラマが、下手に作られたプログラムの修正をしなければいけなくて、全体の生産性を落とすことになる。 つまり、出来ないプログラマはチームで働くと、生産性をマイナスにするのだ。厳しいことを言えば、いない方がマシなのである。 ソフトウェア開発にの手はいらないのだ。 では、出来ないプログラマとはどんな人たちか。 コピペで書くプログラマだ。他で動いているプログラムをコピペして、なんとなく直して書いているプログラマだ。 なぜプログラムが動くのか、どう書けば動くのか、わかっていない。 ただ沢山のプログラムを書くだけの量産型プログラマだ。こういう人のプログラミングは、デバッグさせてみて、横で見てるとすぐにわかる。 まず、エラーメッセージを見な

    otakumesi
    otakumesi 2017/01/17
    結局書きつづけたり継続的に勉強しないとプログラミングなんて身につかないしね
  • たった1人から始める社内テストコード文化

    # -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals # テストする関数 def add(a, b): return a + b # テストコード 関数名はtest_ から始めるのがpytestでのお作法 def test_add(): assert add(1, 1) == 2 assert add(1, 2) != 2 >>> $ py.test ../tests/test_add.py =============================================================================== test session starts ================================================

    たった1人から始める社内テストコード文化
  • 今から新規でiOSアプリを書き始めるなら。2016年冬 - Qiita

    こんにちは @yimajo です。この記事は今から新規でAndroidアプリを書き始めるなら。に大きく影響されています。主な内容として次のような事柄を取り扱っています。 今から書くならこんな設計 こんなライブラリがあるが使ってみた感想 ただ、結論として大して深い内容は書けませんでしたので、がっかりせず、みなさん思い思いにやればいいよっていうことに終着しています。アドベントカレンダーのネタにみなさんも書いてみてはどうでしょう。 言語について Objective-C か Swift か まず最初に言っておくとObjective-CやSwift以外にもiOSアプリを始める方法はあります。例えばObjective-C++とかRubyMotionとか。まあそれはそれで良いところもあると思いますが、複数人でiOSアプリ開発を行いそれを保守したり機能追加したりすることを考えるとObjective-CかS

    今から新規でiOSアプリを書き始めるなら。2016年冬 - Qiita
  • テスト計画の立て方 - Qiita

    テスト計画をどう立てていくか、ふつうのシステムエンジニアにとって分かりやすく考えてみたいと思います。 テスト工程は、一番ざっくりした分類で単体テスト、結合テスト、システムテストに別れるのが一般的です。 この工程は、あくまでもV字モデルに対応したインプットがどの前工程で作られたものを検証するかの基準であって、実際にどういう観点をどういう手順でテストするか、はそれぞれのプロジェクトで計画します。それがテスト計画になっていきます。 しかし、ただの工程の話と、実際におこなうテストの内容の違いが分かっていないと、テスト計画何するものぞ状態になって、ろくなテストが実施されないことになりますし、そのようなプロジェクトも多く存在します。 テストの世界標準には、ISO/IEC/IEEE 29119があり、これを見るとテスト工程(Test Level/Phase)とテスト種別(Test Types)の組で、テ

    テスト計画の立て方 - Qiita
  • React with Reduxによる大規模商用サービスの開発 / nodefest2016

    東京Node学園祭2016で話したブッキングテーブルのやつ

    React with Reduxによる大規模商用サービスの開発 / nodefest2016
  • プログラミングのサイドプロジェクトを始めたいきさつ | POSTD

    (ソフトについて問い合わせがあったので記入しておきます。Sublime Text 3に Materialize の”Spacegray Light”を適用、フォントは Ubuntu Mono Bold です。) UC San Diegoでの学生時代は、コンピュータサイエンス(CS)プログラムを専攻する他の学生と同じく、数年間は何となく講義を受けていただけでした。出来は可もなく不可もなしといった感じで、成績の評価点(GPA)も至って普通でした。プログラミングの授業ではやりがいのある課題を楽しんでいましたが、微積分はそれほど楽しくはありませんでした。 今回のブログの投稿ではそれほど技術的な内容は扱わず(気分転換ですね)、私自身のオープンソースプロジェクトの経験について、その経緯を振り返ってみようと思います。これらのプロジェクトがきっかけとなり、私は後にインターンの機会を得ることができました(そ

    プログラミングのサイドプロジェクトを始めたいきさつ | POSTD
  • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基としてそれ以外にも有用なオプションがあります(C++

    C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
  • DI・DIコンテナ、ちゃんと理解出来てる・・? - Qiita

    意外と分からずに、「とりあえず」とか「なんとなく」で使っちゃうパターンが多い系案件な気がして書いてみます。 こんな事ありませんか? DIとDIコンテナの違いを説明出来ない DIとサービスロケータの違いを説明出来ない DIを使ってるつもりが、サービスロケータになっている DI、サービスロケータが、ただの「パターン」の1つであることを理解してない DI(Dependency Injection)を正しく理解する そもそも、Dependeny Injectionを日語にするとどういう意味になるでしょうか。 多くの人が「依存性の注入」とか応えるのではないでしょうか? 私もそうでした。きっと何かで読んだのでしょう。 (wikipediaに「依存性の注入」と書いてありますね) 補足 なぜ依存性を注入してあげると良いのか、そのメリット等は後述しますが、 DIというのはただのパターンの1つです。 たまに

    DI・DIコンテナ、ちゃんと理解出来てる・・? - Qiita
  • Goのアンチパターン

    Go書いててなんとなく見えてきた Goでやっちゃいけないパターン WAF導入してらくらくWebアプリ WAF自体が現在群雄割拠状態。 WAF毎にハンドラインターフェースが違うので既存コードつなぐにはラッパーが必要。 どのWAFもLL言語に比べるとまだまだフィーチャーの網羅範囲が狭い。 なのでもちろんLL言語ほど楽には書けないことが多い。 リフレクション使いまくりでトータル性能はLL言語並みに遅いのもある。 Go1.7のcontextパッケージの導入で標準のHTTPハンドラが復権する可能性があり更に荒れる予想。 追記: 楽できるのを期待してWAFを導入するの「やっちゃいけない」とまでは言い過ぎだったかもしれないけれど例のsqlでPrepareを正しく使えていないで性能出なかった件とか、当面WAFを使うなら自分で概ね中身を理解して使う覚悟が必要。 構造体メソッドにロジックを詰め込む Goの思想

  • Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き) - paiza開発日誌

    こんにちは、吉岡(@yoshiokatsuneo)です。 Dockerはシンプルで軽量な仮想環境という特徴から急速に広まっており、paizaでも利用しています。ただし、発展が早いことから、断片的な情報や古い情報などもあります。そこで、ここでは今のDocker(Ver1.13: 2017/1/20更新)について、5分でわかるように簡単にまとめてみます。 目次 Dockerの特徴 コンテナと仮想マシンの違い Dockerの発展 Dockerの構成(5つの要素) Dockerの基コマンド Dockerコマンド一覧 Dockerの仕組み 考え方 まとめ Dockerの特徴 Dockerは、Linux上のシンプルで軽量な仮想環境(コンテナ)で以下の特徴があります。 早い・軽い OSレベルの仮想化なので、起動は一瞬です。コンテナ間でイメージを共有できるので、コンテナの起動自体ではディスクは消費しませ

    Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き) - paiza開発日誌
  • ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと - ゆううきブログ

    この文章は、サーバサイドのウェブアプリケーション開発において、社内実績の少ない新しい言語を採用したときにインフラ面で考慮したことを社内向けにまとめたものです。 はてなでは、長らくPerlでウェブアプリケーション開発を続けてきた一方、ここ数年で社内でScalaまたはGoの採用事例も増えてきました。 今後開発が始まるプロダクトにおいても、PerlScalaGoもしくは他の言語を採用するかどうかを開発開始時に選ぶことになるでしょう。 新言語を採用するときに、考慮すべきことの一つとして、「インフラ」への影響があります。 新言語に関する雑談をしていると、ウェブアプリケーションエンジニアに「インフラ」への影響について聞かれます。 もしくは、ウェブオペレーションエンジニアから考慮するポイントを伝えることもあります。 ScalaGo以外に、Node.jsやサーバサイドSwiftはどうかというのも雑談

    ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと - ゆううきブログ
  • Webアプリの開発で面倒な作業を一発解消してくれる無料Webサービス9選! - paiza times

    どうも、まさとらん(@0310lan)です。 みなさんは、Webアプリの開発にトライしたことはありますか? いざ、コードを書き始めるとちょっとしたことで悩んだり、簡単に思っていた処理が意外と面倒であったり、データベース操作が難しかったり…など、予想以上に困難な場面に直面することが多いと思います。 そこで今回は、初級者から上級者まで幅広い開発シーンを想定し、面倒な作業を解消して便利に活用できる無料Webサービスを厳選してみましたので、ご紹介しようと思います! 目次 ・悩みがちな「関数」や「変数」の名前を日語で一発変換! ・Eメール認証の判定を自動化する! ・多彩な「情報リソース」を無料でゲット! ・わずか数行で画像要素をInstagram風のオシャレ写真に変換! ・任意のWebサイトURLから自動で「スクショ」をゲット! ・超お手軽にソースコードをシェア&レビューする! ・Googleスプ

    Webアプリの開発で面倒な作業を一発解消してくれる無料Webサービス9選! - paiza times
  • MVVMをベースに複雑な振る舞いを しっかり把握できるアプリ開発

    Realm meetup #6 で発表した Sync iOS開発の舞台裏についてです プロジェクトの話や、MVVM、ViewBindingなど多義にわたり解説しています

    MVVMをベースに複雑な振る舞いを しっかり把握できるアプリ開発
  • 1