タグ

ブックマーク / developer.hatenastaff.com (11)

  • 文字列アルゴリズムの学びかた - Hatena Developer Blog

    こんにちは!はてなアプリケーションエンジニアの id:takuya-a です。 みなさんは、このような疑問をもったことはありませんか? grep はどのように文字列を検索しているのか? MeCab はどうやって辞書を高速にルックアップしているのか? パーサやコンパイラを作りたいけど、何から始めればいいのか? 稿では、「文字列アルゴリズムとはどんなものなのか?」「なぜ重要なのか?」「何を知っておくべきか?」「どうやって勉強すればいいのか?」といった疑問にお答えしていこうと思います。 文字列アルゴリズムの意外な応用や、モチベーションを保ちやすい勉強のしかた、文字列アルゴリズムを勉強するために行った社内での取り組み、実装するときのコツといったトピックについても触れています。 このエントリは、はてなエンジニアアドベントカレンダー2016の22日目の記事です。昨日は id:syou6162 さんに

    文字列アルゴリズムの学びかた - Hatena Developer Blog
  • 開発速度と品質のトレードオフの判断基準の合意 - Hatena Developer Blog

    Webサービスの開発は、ユーザ/顧客へ価値を早く届けるため、競合より早くリリースするため、人的リソースを無駄使いしないためなど、とにかく素早く進めたいものですね。一方で、開発を急ぐあまり品質を犠牲にすればかえって価値が失われたり、技術的負債が溜まって長期的なコストが大幅に増大する可能性もあります。開発速度とプロダクト品質は基的にはトレードオフの関係にあるのでしょう。 開発速度と品質のどちらを優先するかはプロダクトの性質や、チームもしくは会社の状況によって異なるとおもいます。この状況の認識がチームメンバー間でずれていると、チームのパフォーマンスを最大限に発揮できないばかりか、チーム内の関係悪化も招きかねません。エンジニアたちとプロダクトオーナーの間の対立のようなありがちな問題の原因の一つかもしれません。 そこで、開発速度と品質のトレードオフをどう判断すべきかの基準を明確にして、原則それに従

    開発速度と品質のトレードオフの判断基準の合意 - Hatena Developer Blog
    Jxck
    Jxck 2016/12/27
  • 一から始めるJavaScriptユニットテスト - Hatena Developer Blog

    この記事は、はてなエンジニアアドベントカレンダー2016の5日目の記事です。 こんにちは、はてなでアプリケーションエンジニアをしている id:shiba_yu36 です。先日、buildersconにおいて、現在所属しているプロジェクトJavaScriptのユニットテストを導入した知見について、「一から始めるJavaScriptユニットテスト」というタイトルで発表しました。 speakerdeck.com この発表は、実際にJavaScriptのユニットテスト環境を作ってみると非常にハードルが高いと感じたので、そのハードルを少しでも下げられればという思いで、非常にシンプルな例で一から環境を作る例を紹介しました。アジェンダは次のとおりでした。 カクヨムのJS環境 JSのテストツールを整理する 通常の関数のユニットテスト DOM操作する機能のユニットテスト カクヨムのJS環境や、JSのテスト

    一から始めるJavaScriptユニットテスト - Hatena Developer Blog
  • 契約による設計の紹介 - Hatena Developer Blog

    こんにちは、チーフエンジニアの id:hakobe932 です。 はてなでは毎週、社内技術勉強会を開催しています。先週の勉強会では現在開催中のはてなインターン2016の参加者のみなさんもインターン生も参加して、いっしょに技術交流を行いました。 このエントリでは、そこで発表した、契約による設計の紹介をしたスライドを公開します。 契約による設計はBertrand Meyer氏によるオブジェクト指向入門*1という書籍で紹介されている考え方です。 オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング) 作者: バートランド・メイヤー,酒匂寛出版社/メーカー: 翔泳社発売日: 2007/01/10メディア: 単行(ソフトカバー)購入: 11人 クリック: 307回この商品を含むブログ (130件) を見る 契約による設計で

    契約による設計の紹介 - Hatena Developer Blog
    Jxck
    Jxck 2016/09/01
    先日の例外・エラー・異常の使い分けの話、契約違反(asset) も追加したいかもしれないなぁ。
  • TypeScript の型定義ファイルと仲良くなろう - Hatena Developer Blog

    この記事は2016年に書かれた古い記事です。当時はまだTypeScript2.0も出ていないころで今とは状況がかなり異なっています。参考にする場合注意してください。 はじめに TypeScriptの型システム Declaration space Open-ended ここまでの確認 型定義ファイルを読み書きできるようになるために declare キーワード 既存のオブジェクトの型定義を拡張する グローバルなオブジェクトに対する宣言 module Export Assignments Relative or Non-relative module imports ES2015形式 実際の定義ファイル 既存の定義ファイルを拡張する declare global { } について Typings について おわりに インターン募集中 はじめに こんにちはアプリケーションエンジニアの id:t_k

    TypeScript の型定義ファイルと仲良くなろう - Hatena Developer Blog
  • はてなブログのシンタックス・ハイライト機能に対応する言語を募集します(追記あり) - Hatena Developer Blog

    こんにちは、ブログチームの id:masawada です! 今回は、はてなブログのシンタックス・ハイライト機能について紹介します。はてなブログでは「はてな記法」モードおよび「Markdown」モードの場合に、ソースコードを色付けするシンタックス・ハイライト機能を利用することができます。 対応言語の追加について このたび、対応する言語に「Kotlin」「Elixir」「Crystal」「Dart」「Nim」の5つを追加しました。どうぞご利用ください。すでにHatena Developer BlogでもKotlinの記事が書かれており、シンタックス・ハイライトが適用されています。 developer.hatenastaff.com ※これまでに保存された記事については、編集画面を開いて記事を更新することで適用することができます。 対応してほしい言語を募集します シンタックス・ハイライト機能はC

    はてなブログのシンタックス・ハイライト機能に対応する言語を募集します(追記あり) - Hatena Developer Blog
    Jxck
    Jxck 2016/05/23
    それより HTML パーサのバグ直して欲しい
  • HTMLのpattern属性とJavaScript正規表現のunicodeオプション - Hatena Developer Blog

    こんにちは、Webアプリケーションエンジニアのid:nanto_viです。みなさんHTMLのフォーム検証機能は使っていますか? 近年は各Webブラウザの対応も進み、お手軽にフォームの利便性を高められるようになっています。 そんなフォーム検証機能のひとつがinput要素のpattern属性です。pattern属性の値にJavaScriptの正規表現パターンを指定することで、ユーザーの入力が意図しないものであった場合、フォーム送信ができなくなります。下図は5桁の数字の入力が求められるところに3桁しか入力せずフォーム送信しようとしたところです。ブラウザに組み込みのエラー表示が出現し、またそのメッセージにtitle属性の値が使われていることを確認できるでしょう。(pattern属性を指定する際には、title属性に書式の説明を記述することが推奨されています。) <input type="text"

    HTMLのpattern属性とJavaScript正規表現のunicodeオプション - Hatena Developer Blog
  • react-storybookを用いたReactコンポーネント開発 - Hatena Developer Blog

    こんにちは!Webアプリケーションエンジニアの id:amagitakayosi です。 今日はReactコンポーネントを手軽に開発するためのツールを紹介します。 前回のあらすじ react-storybookとは 導入してみる 初期設定 storyを作成する 起動 イベントを監視する Hot Module Reloadingの仕組み メリットとデメリット リアルタイム確認できる 導入が簡単 ストーリー駆動開発できる デメリット: Webpackの機能で動いてる まとめ 前回のあらすじ developer.hatenastaff.com 前回の記事では、Reactコンポーネントをnpmパッケージとして開発する方法を紹介しました。 対象としたのはこちらの無限スクロール用のReactコンポーネント。 http://www.npmjs.org/package/@fand/react-infini

    react-storybookを用いたReactコンポーネント開発 - Hatena Developer Blog
    Jxck
    Jxck 2016/04/15
  • Reactコンポーネントをnpmパッケージとして開発する - Hatena Developer Blog

    こんにちは!ブログチームの id:amagitakayosi です。 今回は、業務で書いた小さなReactコンポーネントをnpmパッケージとして分離した話をします。 今回公開するパッケージ 実装方針 なぜnpmパッケージにするのか 他のコンポーネントの影響で壊れることを防げる アドホックな修正の積み重ねで複雑になることを防げる プロジェクトのコードを削減できる デメリット Babelなパッケージのディレクトリ構成 実装 npmの注意点 reactはpeerDependenciesに入れる npm link を用いてローカル開発する場合、npmはpeerDependenciesを解決できない browserify-shimを利用する場合 npm publish 次回予告 追記 今回公開するパッケージ www.npmjs.com 今回は「無限スクロール」のためのReactコンポーネントを作

    Reactコンポーネントをnpmパッケージとして開発する - Hatena Developer Blog
    Jxck
    Jxck 2016/04/10
  • TypeScript で実現する MVP アーキテクチャパターン - Hatena Developer Blog

    こんにちは、アプリケーションエンジニアの id:nanto_vi です。先日行われた Hatena Engineer Seminar #4 で、「TypeScript で実現する MVP アーキテクチャパターン」と題する発表を行いました。当日は皆様ご清聴いただき、また懇親会でも活発な質疑をいただきありがとうございました。 内容としては、TypeScript を用いたクライアントサイド Web プログラミングの話、及び既存の JavaScript フレームワークを採用せず、MVP (Model-View-Presenter) アーキテクチャパターンにのっとり開発を進めた事例の紹介となります。以下に発表資料を加筆修正して公開するのでご参照ください。 自己紹介 id:nanto_vi (外山真) アプリケーションエンジニア JavaScriptPerl アジェンダ 少年ジャンプルーキーでの T

    TypeScript で実現する MVP アーキテクチャパターン - Hatena Developer Blog
    Jxck
    Jxck 2015/02/13
    あら “テストに QUnit を採用したのはなぜ? 導入が非常に簡単だったから。 ”
  • Solrの導入資料を公開します - Hatena Developer Blog

    こんにちは、 id:yanbe です。 全文検索エンジンLucene上に構築されたSolrという検索ミドルウェアがあります。拡張性・カスタマイズ性に富み、既存のデータのインポート機能が豊富なのもあって、広く利用されています。 参考: Solr - Wikipedia 国内のウェブサービスでのSolrの採用事例を挙げるとNAVERやCookpad、アメーバなどがありますが、はてなでも以前より一部のサービスでSolrを採用しています。 Solrの公式ドキュメント(英語)はwiki形式で提供されており、網羅的な情報はこちらで手に入ります。また、Solrの基的な使い方を学べるチュートリアルもありますが、「すでにある典型的なLAMP構成のウェブサービスにSolrによる検索機能を組み込む」までには、ここからさらに多くの情報を調べる必要があり、Solrの導入のハードルとなっていると感じました。 そこで

    Jxck
    Jxck 2012/05/03
  • 1