タグ

Programmingとdevelopに関するsyqueのブックマーク (30)

  • タイムゾーン呪いの書 (知識編)

    「タイムゾーン呪いの書」は、もともと 2018年に Qiita に投稿した記事でしたが、大幅な改訂を 2021年におこない、同時にこちらの Zenn に引っ越すことにしました。 この改訂では Software Design 誌の 2018年 12月号に特集の一章として寄稿した内容も取り込みつつ、夏時間をめぐって各地で起きつつある変化について 2021年 6月現在の状況なども追加しました。そんな追記もしていたら記事全体が長大になってしまったため、この「知識編」と、「実装編」・「Java 編」に記事を分けました。「知識編」は、導入にあたる第一部です。 Qiita のほうは、引っ越した旨とこの引っ越し先へのリンクだけ追記して、しばらくそのまま残すつもりです。 はじめに タイムゾーンという概念のことは、ほとんどの人が聞いたことがあると思います。ソフトウェア・エンジニアでも多くの方が、時刻やタイムゾ

    タイムゾーン呪いの書 (知識編)
  • 2024年Gitワークフロー再考 | フューチャー技術ブログ

    春の入門祭り2024の2記事目です。 Gitは、出自としては1週間で作られたLinuxカーネルのための分散バージョン管理システムでした。当時のワークフローに合わせてパッチをテキスト化してメールに添付できるような機能だったりが備わっています。 一方で、現代のGitは、デファクトスタンダードなバージョン管理システムになりLinuxカーネル以外のアプリケーション開発で利用されています。分散バージョン管理ではあるものの、サーバー・クライアント型の使われ方をしていて、GitHubGitLabを核にして、ローカルで作ったブランチをpushして、Pull Requestの形にして管理しています。少なくとも周りで見る限りでは、それ以外の使われ方の方が少なくなってきてます。そんなこんなで求められている使われ方が変わってきていて、それに合わせた機能がぼちぼち増えています。それを活用することで、ウェブ画面上で

  • Webフロントエンドの開発効率を高く保つための考え方

    これまでいろんな現場でWebフロントエンド開発をしてきて、メンテナンスしやすく効率の高いWebフロントエンド開発をする上で重要になる考えが自分なりにまとまってきたので記事にしてみます。 Worse is Betterという考え方 自分が見てきた中でWebフロントエンドの開発効率が落ちてしまう一番の要因は、きれいで理論的には優れているアーキテクチャを構築しようとしてそれ自体がもたらす複雑性を支えきれないというパターンです。 少し前にフロントエンドにClean Architecture(以下CA、あの同心円の図を指すのは誤用に近いですがここではそれに乗ります)を導入する記事が流行ったと思いますがあんな感じです。ああいったクラスベースでDIが重要となる設計手法はサーバーサイドのJavaでSpringを使うのとは違ってReactがサポートしているものではないため、CAの実現自体に高い設計スキルが必

    Webフロントエンドの開発効率を高く保つための考え方
  • Examples from JavaScript: The Definitive Guide, Fifth Edition

    The links below display the source code for the 124 numbered examples in the 5th edition of my book JavaScript: The Definitive Guide. Cut-and-paste the code in order to try it out yourself and use it in your own programs. See the "O'Reilly Policy on Re-Use of Code Examples from Books" for details on how you may and may not use these examples. In most cases, it suffices to simply provide suitable

    syque
    syque 2011/05/02
    The links below display the source code for the 124 numbered examples in the 5th edition of my book JavaScript: The Definitive Guide. Cut-and-paste the code in order to try it out yourself and use it in your own programs.
  • http://www.designerterminal.com/freebies/wallpapers/cheat-sheet-desktop-wallpapers.html

    syque
    syque 2011/03/11
    Ubuntu, WordPress, vi, Photoshop など色んなチートシート集。チートシートのデザインとしても参考になる
  • Web Applicationを綺麗に設計するためのMVACという考え方 - $shibayu36->blog;

    【2016/03/04追記】以前まとめたこのMVACという名前の設計は既に古くなっており、今はこのようなアーキテクチャで設計していません。 こんにちは。最近ははてなでMVACというアーキテクチャに則って開発をしているのですが、ようやく意味を理解できてきました。そこで今回は「Web Applicationを綺麗に設計するためのMVACという考え方」について、サンプルを交えながら説明していこうと思います。かなり長くなってしまったので、時間があるときにでもどうぞ。 MVACって? データソースやロジックを扱う「Model」、表示・出力を管理する「View」、複数のModelとControllerをつなぐApplication、ユーザのリクエストなどを受け取りViewやApplicationを制御する「Controller」の4つの要素を組み合わせてシステムを実装する方式。MVCをさらに抽象化した

    Web Applicationを綺麗に設計するためのMVACという考え方 - $shibayu36->blog;
    syque
    syque 2011/03/05
    MVC を発展させた MVAC という開発パターン
  • Node.jsを手軽に試せるJavaScript統合開発環境「Cloud9 IDE」、クラウドでの提供開始

    Node.jsを手軽に試せるJavaScript統合開発環境「Cloud9 IDE」、クラウドでの提供開始 オープンソースとして開発されているJavaScript統合開発環境の「Cloud9 IDE」が、クラウド上のサービスとして提供開始されました。Cloud9 IDEサービスを立ち上げたのは、Cloud9 IDEの開発元でもあるAjax.org。 Cloud9 IDEは、Node.jsが動作するサーバの上にWebアプリケーションとして実装された、Node.js対応のサーバサイドJavaScriptのための統合開発環境です。Node.js上に実装されたということはつまり、Cloud9 IDE自身もJavaScriptで記述されています。 Node.jsを試してみたいけれど、自分でインストールしたり環境を構築するのは面倒、という人にちょうどいいのではないでしょうか。 Cloud9 IDEサー

    Node.jsを手軽に試せるJavaScript統合開発環境「Cloud9 IDE」、クラウドでの提供開始
    syque
    syque 2011/03/03
    Javascript の統合開発環境である Cloud9 IDE。商用での利用は有償。OSSプロジェクトなら無料。node.js は宣伝文句の一つ。
  • ソフトウェアテストの分類

    静的テスト/動的テスト ( ※↓ ) 1.静的テスト、2.動的テスト モデルベーステスト / モデルベースではないテスト ( ※↓ ) モデルベーステスト モデルベースではないテスト 2.1. アドホックテスト、2.2.探索型テスト ホワイトボックス・テスト / ブラックボックス・テスト / グレーボックス・テスト ( ※↓ ) ホワイトボックス・テスト ( ※↓ ) 1.制御パステスト、2.データフロー・パステスト ブラックボックス・テスト ( ※↓ ) 入力値および出力値の項目を決定する方法 1.同値分割、2.境界値分析 テストケース(テストを行う入力値と出力値の項目とその組み合わせ)を決定する方法 ディシジョンテーブルを使った方法 1.単純なディシジョンテーブルの使用、 2. 原因結果グラフ、3. 実験計画法、4. 原因流れ図(グレーボックステストの一種) 状態遷移テスト ファズ・テ

    syque
    syque 2011/02/22
    静的・動的テスト、WB・BB、モデルベースとアドホックなど
  • Software Testing - Columns: テストカバレッジ

    テストをしていて一番悩むのが、どこまでテストすればよいのだろうか、という点です。勘と経験と度胸で終了判定を行っている組織もあれば、独自の方法を編み出している組織もあるようです。また信頼度成長曲線(Software Reliability Growth Model: SRGM)を始め、昔から研究テーマとしてもよく取り上げられます。しかし、これを考えれば万事オッケーというような、万能の判定基準はありません。信頼性を判定する指標も同様です。テスト対象やテストそのものの様々な側面を総合的に把握する必要があります。 その一つの側面が「カバレッジ(coverage)」です。どれくらい網羅したテストなのか、という指標を意味しています。最も有名なのはコードカバレッジでしょう。C0、C1などという用語を聞いたことはありませんか。もしくは命令網羅や分岐網羅、ノード網羅やリンク網羅という呼び方かもしれません。基

    syque
    syque 2011/02/22
    どこまでテストを行ったかの指標になるコードカバレッジ、設計カバレッジ、実施カバレッジ
  • JavaScriptでiPhoneアプリを楽々作成

    iPhoneアプリを作るためには以下のようなプログラミングの知識が必要だと思われています。 Objective-Cの知識 (Cの知識 + オブジェクト指向プログラミングの知識) iPhoneのライブラリの知識 これらをマスターするのはかなり大変ですが、 「PhoneGap」というシステムを利用すると、 JavaScriptだけを使って簡単にアプリを作成することができます。 iPhoneのSafariから JavaScriptが動くWebページにアクセスするとiPhone上でJavaScriptプログラムを動かすことができます。 このような「Webアプリケーション」はSafariの上でしか動作しませんし、 ネットに接続されていない状態では利用できません。 しかしPhoneGapを利用すると、 JavaScriptプログラムとSafariをまとめてひとつのアプリケーションを生成することができる

    syque
    syque 2011/01/31
    PhoneGap で JavaScript を使った iPhone アプリ開発。Titanium とどっちがいいのかなー
  • 語学でもプログラミングでもスキルを高速に学習できる方法:村上福之の「ネットとケータイと俺様」:オルタナティブ・ブログ

    ダメ人間のスキルの習得には下記の表のような法則が成り立つと思っています。 はてブで「これをやって英語を身に着けたぜ!」というエントリーがブックマークをのばしますが、僕個人では意味がないと思ってます。ぼくのようなダメ人間の場合、モチベーションが続かないからです。 お金払って英会話学校に行っても身には付く速度が遅いです。一方、無理やり海外仕事を担当させられた人はものすごい速度で英語が話せるようになったりします。 ただし、こうやって無理やり身につけた知識はあまり体系性が無く、自分が使った分野しか学習できないというデメリットもありますが、それを補って余りある学習速度があると思います。 個人的には、1円でもいいからカネを取ると早く身に付くと思っています。 こう思うようになったのは、8年ほど前、こういう人に会ったからです。たしか大阪起業フェアな何かでお会いした方だったと思います。 彼は英語にコンプ

    語学でもプログラミングでもスキルを高速に学習できる方法:村上福之の「ネットとケータイと俺様」:オルタナティブ・ブログ
    syque
    syque 2011/01/14
    つまり、お金をもらう事柄について適切にお金を払いつつ学べば学習速度、知識定着、体系性全ての結果がマージされて◎、◎、◎になる!つうことで仕事ばっかじゃなくて教育費・時間をけちらないで設けて(心の訴え)
  • A successful Git branching model を翻訳しました

    Vincent Driessenさんの "A successful Git branching model" を翻訳しました。 元記事はこちら: http://nvie.com/posts/a-successful-git-branching-model/ (翻訳の公開と画像の利用は人より許諾済みです) このブランチモデルの導入を補助してくれる、git-flowというGit用プラグインがあるそうです。 翻訳の間違い等があれば遠慮なくご指摘ください。 A successful Git branching model この記事では、私のいくつかのプロジェクト仕事でもプライベートでも)で約一年ほど導入して、とてもうまくいくことがわかった開発モデルを紹介する。しばらく前からこれについて書くつもりだったんだが、今まですっかりその時間を見つけられずにいた。ここでは私のプロジェクトの詳細については書

    A successful Git branching model を翻訳しました
    syque
    syque 2010/12/06
    Git におけるブランチモデル。master, develop, release, hotfixes, feature というモデルで図解付き。
  • プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して

    最近はアーキテクトという役割で客先に常駐し、フレームワークの選定をしたり、事前に共通部品を設計したりする役割を担う仕事を引き受けることが結構あります。そこで運よくお客様のマネージャーがオブジェクト指向開発の経験が十分にある方だと、IDEなどの開発環境やインターネット接続環境を当然のように用意してくれるので最初から仕事がスムーズにできるのですが、そうでないとMS Officeしか入っていないロースペックのノートPCを渡されて、要件定義フェーズの期間中、フレームワークの設計をお願いしますとか、私としてはちょっと首をかしげてしまうような困ったことを言われてしまう場合があります。開発フェーズが始まる半年後まではコーディングは基的に不要という考え方です。アプリケーションのアーキテクトという役割では少なくともコーディング規約を考えたり、ツールやフレームワークの選定をしたりする必要がありますし、プロジ

    プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
    syque
    syque 2010/11/24
    "Excelの達人になってマクロを思いっきり工夫するとか、SQLのチューニングの名人になるとか" 耳が痛い痛い痛い痛い
  • グラス片手にアジャイル開発 第1回 ― 実践的アジャイル開発とは

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    グラス片手にアジャイル開発 第1回 ― 実践的アジャイル開発とは
    syque
    syque 2010/10/04
    信奉者の概念語りに終わらない、具体的なアジャイル開発手法
  • Model View Controller - Wikipedia

    MVCの典型的な相関図 Model-View-Controller (MVC、モデル・ビュー・コントローラ) はUIを持つソフトウェアに適用されるソフトウェアアーキテクチャの一種である。 MVCはソフトウェアを処理/Model・表示/View・入力伝達/Controllerの3要素に分割し、ソフトウェア内部データをユーザーが直接参照・編集する情報から分離する。プレゼンテーション(View・Controller)とドメイン(Model)を分離しまたユーザー入力(Controller)と表示(View)も分離することでソフトウェアの保守性・開発生産性を向上させる。 1979年: パロアルト研究所にてトリグヴェ・リーンスカウクが考案[1][2]。長い間、Smalltalk-80の実装のみが公開され、MVCに関する公開情報はなかった 1988年: 最初の論文「A Cookbook for Usin

    Model View Controller - Wikipedia
    syque
    syque 2010/09/28
    デザインパターンを利用したアーキテクチャの一例 | 日々の業務を入力してあれこれっていうアプリは大抵この考えで作れる
  • GNU Emacs - GNU Project - Free Software Foundation (FSF)

    An extensible, customizable, free/libre text editor — and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing. The features of GNU Emacs include Content-aware editing modes, including syntax coloring, for many file types. Complete built-in documentation, including a tutorial for new users. Full Unicode support for n

    syque
    syque 2010/09/27
    GNU Emacs is an extensible, customizable text editor
  • 「ソフトウェアレビューの価値を再考する」セミナーに参加した - Basic

    昨日はS-openミニセッション「ソフトウェアレビューの価値を再考する〜なぜ形骸化するのか?」に参加してきた。講師は奈良先端科学技術大学院大学の森崎先生。ソフトウェア開発の現場でレビューに困る人は多いらしく(私もその1人だ)、会場には50人近い人たちが集まっていた。 講演では森崎先生の軽妙な語り口で、レビューの場で起こりがちな問題の例やその対策案、学会での研究動向、海外での事例、研究での苦労話などが紹介され大いに盛り上がるセミナーとなった。レビューというプロセスそのものが極端に重視されているせいか、膨大なチェックリストを使ってレビューすることを余儀なくされている現場の例など、開発者の悲鳴が聞こえてきそうな話もあった。 限られた時間やリソースの中でレビューの効果を上げようと思ったら、それなりの視点や方法論が必要になってくるはずだ。講演の中では、どのような観点でレビューを行うか?という優先順位

    「ソフトウェアレビューの価値を再考する」セミナーに参加した - Basic
    syque
    syque 2010/09/04
    "なお、スウェーデンやドイツでは、ソフトウェア工学の研究者と実際の開発現場との相互互助の関係が出来つつあると言う。"
  • 細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック

    細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック:最強最速アルゴリズマー養成講座(1/3 ページ) 競技プログラミングはレベルの高い人たちの集まり――そんな考えを持っている初心者の方、TopCoderはあなたのコーディングスキルを爆発的に高める魔法のような場です。今回は、初心者にこそお勧めしたいTopCoderの魅力について考えます。 教育的な観点から見るTopCoder 今回からTopCoderに関する実践的アルゴリズムを解説していく予定でしたが、序盤のうちに触れておきたいことがありましたので、今回の枕は“教育的視点から見るTopCoder”というテーマで少し書こうかと思います。 まず、最初に宣言しておきたいことは、この連載は初心者向きである、ということです。「どう考えても上級者向けだろう」という意見はたくさんの方から寄せられていますが、筆者は、まだプログラミングレ

    細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック
    syque
    syque 2010/09/01
    TopCoder の足掛けに読んだ
  • DreamweaverからCodaに変えました

    2017年6月29日 便利ツール Webサイトを制作する時のWebオーサリングツール・HTMLエディタは何を使用していますか?きっと多くの人がDreamweaverを使っていると思います。私もそうでした。が、最近私のまわりのWebデザイナーがみんなCodaというソフトを使っているのに気づき、試したところ、あまりにも使い勝手がいいので紹介します。当におすすめです! ↑私が10年以上利用している会計ソフト! Codaの特徴を簡単に 詳しい説明はリンクをクリックでジャンプします。 Mac専用 美しいビジュアル 便利なプレビュー画面 PHPJavaScriptの動作確認も 素早いタグ打ちが可能 有料 8,500円 はい、Mac専用なんです。このブログを読んでいるユーザーの70%がPC使用なのでこれを記事にするか悩みましたが、Mac愛用者さんに向けて!ちなみに私はCoda英語版をインストールして

    DreamweaverからCodaに変えました
    syque
    syque 2010/08/30
    Dreamweaver を使ったことがないけど、単純に使いやすそう。比較記事あるかな / 今更だけど、こうした業務用の高価ソフトウェアに焦点を絞って廉価で販売するというフォロアーなやり方もあり
  • JavaScript初級者から中級者になろう

    JavaScript。「ジャヴァスクリプト」と読みます。主にWebページに動きを与えるものです。 現在では結構多くのページに使われていますが、その多くはとてもレベルが低く不適切なものです。もっと質の高いJavaScriptを使える人が増えるといいなという思いから、このページを作りました。 初級者の基礎知識 文を理解するにはJavaScriptの知識がそれなりに要るので、JavaScriptがそもそもあまり分からない人は、この辺を読んでみましょう。 基礎第一回 基礎第二回 基礎第三回 基礎第四回 基礎第五回 基礎第六回 第一章 オブジェクト オブジェクトとは オブジェクトの実体 配列のコピー オブジェクトと関数 第二章 DOMの基礎 HTMLと木構造 DOMとは 基的な操作とテキストノード 木構造の操作:ノードの除去 木構造の操作:ノードの追加 木構造の操作:さまざまな機能 木構造の操作