タグ

ブックマーク / gihyo.jp (15)

  • 悪いコードの正体を知り,良いコードを書けるようになろう:新刊ピックアップ

    一部のソフトウェア開発の現場では,「⁠炎上」が日常茶飯事です。ソフトウェア開発が難航し,過重労働が当たり前となる「炎上」現場の有様はデスマーチなどとも形容されます。 なぜ現場は疲弊するのか? いくつか原因は考えられますが,その中に「コードの品質が低い」という問題があります。 何が書いてあるかわからない,ちょっと変更しただけで動かなくなる,コードの品質が低いと開発効率が著しく低くなります……。こんな「悪いコード」は実は日のソフトウェア開発の現場には数多くあります。経産省のデジタルトランスフォーメーションに向けた研究会のサマリーによると,こういった悪いコードによって生まれる経済的損失は2025年に最大12兆円にまでのぼるとされています。 これだけインパクトの大きい悪いコードがなぜ書かれてしまうのか? それは,そもそもコードを書くソフトウェアエンジニア自身が「悪いコードとはなにか,どういうコー

    悪いコードの正体を知り,良いコードを書けるようになろう:新刊ピックアップ
  • 第3回 さっそくGitを使ってみよう! | gihyo.jp

    皆さん、こんにちは! エンジニアアイドル「ハックガールズ」の堤沙也と濱ヶ崎美季です。 私たちと一緒にGitを学ぶこの連載、第3回の今日はいよいよ格的にGitに触れてみましょう! Gitの導入方法・概要 Gitを導入する際のおおまかな手順を説明します。 Gitをインストールする Gitの初期設定を行う(ユーザ名やメールアドレスの登録) Git管理するリポジトリを作り、Git管理下に置く 手順はたったこれだけです! なお、お使いのPC(OS)によって導入方法が異なり、OSが同じでも導入方法は復数あるので、今回紹介するのはあくまで一例です。 Gitのインストール Gitをソースからインストールする場合、Gitが依存するライブラリを1つ1つインストールしたり、コンパイルするなどの作業が必要になるため、初めてGitを使う方は何かしらのパッケージマネジメントツールを使ってインストールすることをお勧め

    第3回 さっそくGitを使ってみよう! | gihyo.jp
    pattyhama
    pattyhama 2017/11/23
    Gitの使い方と言えば
  • GitLabのこれまでとこれから | gihyo.jp

    あけましておめでとうございます。株式会社Ruby開発の佐藤です。 近年、GitHubを利用したソーシャルコーディングが注目を集めています。GitHubを利用するとエンジニア同士の共同作業をスムーズに進められるため、ソフトウェア開発の生産性を向上させる効果が期待できます。そのため、オープンソースソフトウェア開発での利用にとどまらず、通常業務でGitHubを利用する企業が増えています。 そこで稿では、GitHubの競合として注目が高まっているGitLabについて紹介します。 GitLabとは GitLabは、GitLab社が開発しているRuby on Rails製のGitホスティングソフトウェアです。GitLabには無料で利用可能なオープンソースソフトウェアのCommunity Edition(以下CE)と、利用にライセンスが必要なプロプライエタリソフトウェアのEnterprise Edit

    GitLabのこれまでとこれから | gihyo.jp
  • 第19回 CIツール「Bamboo」で開発プロセスの生産性を上げる(前編) | gihyo.jp

    はじめに 前回は、バージョン管理システムと課題管理システムを連携させてソフトウェア開発を進めるプロセスを、Bitbucket Server(以下、Bitbucket)とJIRA Software(以下、JIRA)を例に用いて説明しました。バージョン管理システムと課題管理システムは、リックソフトの考える「三種の神器」の第一と第二にあたります。今回はその第三にあたる継続的インテグレーション(CI)システムに着目し、ビルド/テスト/デプロイといった作業の自動化/省力化、さらに「三種の神器」をすべて連携させることで生産性を向上させる方法について紹介します。 CIシステムは、JenkinsやTravis CIなど世の中に多数存在しますが、稿ではAtlassianが提供する商用WebアプリケーションであるBambooを取り上げます。また、Bambooと連携させるバージョン管理システムと課題管理システ

    第19回 CIツール「Bamboo」で開発プロセスの生産性を上げる(前編) | gihyo.jp
    pattyhama
    pattyhama 2017/09/28
  • 2017年のCI/CDの動向 | gihyo.jp

    あけましておめでとうございます。ソフトウェア開発をめぐる環境は相変わらず日進月歩です。この変化に伴って、ソフトウェア開発そのもののあり方も変化を続けています。稿では、少し大きな視点から継続的インテグレーション(CI⁠)⁠・継続的デリバリ(CD)の最近の動向を紹介します。 CI/CDの大きなうねり 筆者がJenkinsに携わって12年になります。かつて、CI/CDの取り組みは、現在の機械学習やスケールアウト技術のような将来の可能性が注目される若い技術でした。ここ数年、この若い技術は、広く産業界で大規模に組織がかりで展開される成熟した技術に変貌してきました。 この背景にあるのは、ソフトウェア開発・運用全般における自動化のさらなる浸透です。このような自動化の進展は2つの側面から考えることができます。一つは、ソフトウェア開発に必要な様々な作業それぞれの「部品の自動化」という側面です。もう一つは、

    2017年のCI/CDの動向 | gihyo.jp
  • Pythonでプログラミングを始めよう:新刊ピックアップ

    ハッカーへの第一歩にPythonを 「もしコンピュータ言語をひとつも知らないのなら,まずPythonを学ぶことを勧める⁠」⁠。これは『How to become a hacker』(⁠Eric S. Raymond著)の一節です。なぜ,Pythonを勧めるのか,それには様々な理由がありますが,筆者の経験や,世の中の動向を踏まえて説明してみます。 幅広い職種で必要とされるプログラミング プログラミングは,様々な職種で必要となるスキルです。ハッカー(hacker)と呼ばれる,インターネットの発展を支えてきた凄腕のプログラマーだけに必要なスキルではありません。統計学を駆使する社会学者も,理学系の研究者も,工学系のエンジニアも,データサイエンティストも,新薬を開発する研究者も,みなプログラミングのスキルを駆使することで,他人には簡単に真似できない仕事を成し遂げています。プログラミングによって,コン

    Pythonでプログラミングを始めよう:新刊ピックアップ
  • 第1回 スマートフォンアプリ開発に求められるもの | gihyo.jp

    スマホが世界を席巻する 日国内で販売される携帯電話の大半はスマートフォン(以降スマホ)になりましたが、世界に目を向けてみると、スマホのユーザ数はすでに10億人規模に達していて、今年1年だけでも新たに約10億台が出荷されると言われています。2013年はインストールベース(ユーザの手元で使われている台数ベース)でもタブレットを含むスマホのインストールベースがPCを抜いてしまうと言われており、スマホの拡大はますます勢いづいています。 求められるスマホアプリ開発者 スマホのユーザが増えると同時に、アプリの開発を始める開発者の方も増えてきました。多くの場合アプリ開発はあるアイデアから始まります。そのアイデアは、自分が日常感じている問題をうまく解決できる方法を思い付いたところから始まる場合もありますし、自分が得意な分野を対象としてアプリのストア(App StoreやGoogle Play)に置かれて

    第1回 スマートフォンアプリ開発に求められるもの | gihyo.jp
  • 第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう | gihyo.jp

    社内や家庭内でローカルな名前解決をする際、(⁠local.などのサブドメインをつけず)インターネット上に公開しているドメインと同じドメインを使いたいと思うことはないでしょうか。筆者はあります。とはいえ、インターネット上にある権威サーバーに、ローカルIPアドレスを返すレコードを登録するわけにもいきませんよね。そんな時はどうしたらよいでしょう? ある一つのドメインの中で、ローカルな名前はローカル内だけで解決し、かつインターネット上に公開している名前は来の権威サーバーにクエリーを投げて解決する、ということができればよさそうです。これが実現できると、グローバルIPとローカルIPを両方持つようなサーバー[1]は、家庭内で名前解決をした時のみはローカルIPを返す、というようなこともできそうです。 キャッシュリゾルバであるUnboundにはlocal-data(およびlocal-zoneのtransp

    第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう | gihyo.jp
  • 企業動向VRでオフィスリニューアル後を先行見学! Unityを用いた室内インテリア向けデモアプリを開発しました!:|gihyo.jp … 技術評論社

    企業動向 VRでオフィスリニューアル後を先行見学! Unityを用いた室内インテリア向けデモアプリを開発しました! 公共交通機関の乗り換え案内サービス「駅すぱあと」を開発運営する株式会社ヴァル研究所(社:東京都杉並区,代表取締役:中山 秀昭)は,Unity(ユニティ)を用いたVR(バーチャルリアリティ)活用の研究事例として,室内インテリア向けデモアプリを開発いたしました。 ■デモアプリ概要 今回のデモアプリは,ヴァル研究所オフィスビルのリニューアルに合わせた“リニューアル後の室内を先行体験”というテーマで開発を行いました。実際のアプリを用いたユーザーヒアリングでは「全体の雰囲気が分かる。」「真後ろを向いても映像があって新鮮。」「360°見渡せるのは楽しい。」などといった声が上がりました。 ■ビジネス活用へ向けて デモアプリ開発に際しては,開発スピードや作業コストの軽減を優先し,鳥瞰図(ち

    企業動向VRでオフィスリニューアル後を先行見学! Unityを用いた室内インテリア向けデモアプリを開発しました!:|gihyo.jp … 技術評論社
  • 第367回 Ubuntuでネットワークトラフィックを視覚化する | gihyo.jp

    PCを使ううえでインターネットをはじめとするネットワーク機能は欠かせません。ネットワーク上ではさまざまなプロトコルやサービスに応じたパケットやフレームを機器間でやりとりしています。そこで今回はそんなネットワークのトラフィックの中身を見るために定番の、tcpdumpとWiresharkの基的な使い方について紹介します。 Ubuntuなら常にインストールされているtcpdumptcpdump」はlibpcapを利用したネットワークトラフィックをキャプチャ・表示するツールです。Ubuntuのstandardタスクに属しているため、普通のUbuntuやそのフレーバーであれば、常にインストールされているツールでもあります。 とりあえず実際に実行してみましょう。 $ sudo tcpdump -c 10 おそらくいろんなホストとの通信メッセージが表示されるはずです。「⁠-c 10」は10パケット

    第367回 Ubuntuでネットワークトラフィックを視覚化する | gihyo.jp
  • 第4章 標準パッケージ―JSON、ファイル、HTTP、HTMLを扱う | gihyo.jp

    1章の表1で紹介したように、Goは標準パッケージが充実しています。章では代表的な標準パッケージをとりあげて、JSON、ファイル、HTTP、テンプレートの扱いを解説します。最後はそれらを組み合わせて簡単なHTTPサーバを作成します。 encoding/jsonパッケージ JSONを扱うためにはencoding/jsonパッケージを用います。主なAPIとして、構造体をJSONに変換するMarshal()と、その逆を行うUnmarshal()が提供されています。 構造体からJSONへの変換 まずは次のような構造体を用意します。 type Person struct { ID int Name string Email string Age int Address string memo string } func main() { person := &Person{ ID: 1, Name:

    第4章 標準パッケージ―JSON、ファイル、HTTP、HTMLを扱う | gihyo.jp
  • 第1回 JavaScriptの基礎を見直す | gihyo.jp

    連載のはじめに みなさんこんにちは、今回より「聞いたら一生の宝、プログラミングの基礎の基礎⁠」⁠ の連載を担当させていただく橋佑介です。 記事では、広く利用されている技術から新しい技術まで、基的な部分を現場のエンジニアの声を取り上げつつ解説していきます。習得している方にとっては振り返りとなり、また今から学ぶ方にとっては同じ疑問にぶつかった方の意見が参考になれば幸いです。 現場のエンジニアの声は私が開発に携わっている技術系QAサイトteratailから抜粋しています。 第1回では、現在では様々な環境で利用されているJavaScriptの基礎をteratailの初心者投稿とともに振り返っていきます。 JavaScript JavaScriptは主にウェブブラウザを実行環境とし、動的なウェブサイト構築などに利用されてきました。 また、今ではNode.jsをサーバサイドで利用することが増え、

    第1回 JavaScriptの基礎を見直す | gihyo.jp
  • 第5回 そろそろサーバを弄りたい | gihyo.jp

    過去の日記を読み返していて、あることに気づいた。 今日までに、俺がAWSでやってきたこと。 オンプレ時代であれば、サーバをラッキングして、電源を入れ、ネットワーク機器をケーブルでつないだ事くらいしかやっていない。サーバに至っては、電源を入れて、SSHで接続して、pingを打っただけ。 クラウドという環境に初めて触れて、すごいことをしている気分だったのに、改めて考えてみると、すごく単純作業しかしていないことに気づいてしまった。でも、今までであれば、必ずデータセンターに行って作業していた事が、手元ですぐに完結するというのはすごい。それは俺がすごいんじゃなくて、AWSがすごい。 とはいえ、俺も何もしていないわけではなくて、ネットワークを作ったり、サーバを立ち上げたりするのをいかに早くできるかというのを反復練習していたわけで、今となってはネットワークを構築して、サーバを起動するくらいなら30分もあ

    第5回 そろそろサーバを弄りたい | gihyo.jp
  • 連載:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

    第817回参考書を片手にUbuntuでもStable Diffusion WebUIを動作させ⁠⁠、画像を生成する あわしろいくや 2024-06-12

    連載:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
  • 第4回 ネットワークを構築するんだ! 今日は | gihyo.jp

    ネットワークを構築したい 今日はこの間からずっと気になっていたVPCというのを使ってネットワークを構築していきたいと思っている。 まず、今日構築したいのはこんなシンプルなものだ。 グローバルIPが振られて、外からアクセスできるようなネットワークを1つと、外からはアクセスできないネットワークを1つ作りたい。 イメージとしては外からアクセスできるWebサーバと、外からはアクセスできないデータベースサーバをそれぞれ置けるような、ちょっと意味がありそうでだれでもすぐに思いつきそうなネットワーク構成。これを構築すると決めた。 AWSがどんなものかわからないからか、何をしたらいいのかわからなくなることが多い。だから先にやりたいことを見つけてやり方を探すようにしようと思った。 VPCの作成 VPCはクラウド上で仮想のネットワーク環境を構築するためのサービスらしい。そして、VPCというひとつのくくりの中に

    第4回 ネットワークを構築するんだ! 今日は | gihyo.jp
  • 1