タグ

ブックマーク / qiita.com (561)

  • 末尾再帰による最適化 - Qiita

    はじめに ES6 (EcmaScript 6)を試そうと、Babelのドキュメントを読んでいたところ、末尾呼び出し(Tail Call)の最適化をしていることにびっくり。公式リリース(2015年6月)から3ヶ月あまり経ってはいますが、ES6が末尾呼び出し最適化を仕様としてサポートしていることをようやく知りました。 現状で末尾呼び出し最適化をサポートしているブラウザはなく(ブラウザやaltJSなどのES6互換表を参照)、唯一、ES6からES5へのトランスパイラであるBabelのみが部分的(直接的な末尾再帰のみ)ではありながらサポートしているようですね。 今回の記事では、来たるES6時代(いまさらの感はありますが)に備えて、末尾再帰とその最適化について簡単に解説した上で、Babelを利用して実際にJavaScriptでの末尾再帰の最適化を実験してみたいと思います。 ざっくり概要 再帰関数 は関

    末尾再帰による最適化 - Qiita
  • 新入社員が来てメンターになれって言われたけど、どうすればいいのかという対話テクニック - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに 最近、メンター制度として新入社員や若手のメンバーに対して、先輩をつけて相談事に乗ってあげたり、仕事のサポートをしたりといったような教育プログラムを組む企業が増えています。このメンターという役割は、ちょっとした訓練が必要だったりするのですが、このあたりの研修や訓練をせずにいきなり明日からメンターね!なんてことがままあります。

    新入社員が来てメンターになれって言われたけど、どうすればいいのかという対話テクニック - Qiita
  • Android開発のマイベストプラクティス [2016年時点] - Qiita

    2016年5月現在の自分のベストプラクティス。今後変わる可能性があります。 全体設計 android-best-practices コーディング規約 Google Java Style Cookpad 開発効率化 AndroidAnnotations UI マテリアルデザイン rey5137/material -LoliPop以前のバージョンでマテリアルデザインを使うためのライブラリ (注意)compileSdkVersionを23にしないとビルドが失敗する。 Rest OkHTTP Retrofit2 - v1からv2への移行期なので気をつける RxAndroid 参考 Retrofit2 + OkHttp + RxAndroid + Jackson + Realm で開発環境構築 ORM gfx/Android-Orma - migration機能/ドキュメントが一番しっかりしている。

    Android開発のマイベストプラクティス [2016年時点] - Qiita
  • 開発が爆速になるSwift用Xcodeプラグインをまとめてみた - Qiita

    2017/10/15 更新 とりあえず、入れておくと便利なXcodeのプラグインをまとめてみました。 汎用性のあるものを重視して、厳選しています。 プラグイン初心者向けに有名なものも含まれています。 主に Swift 向けです。 Xcode7.3.1 (一部 Xcode9.0) で動作確認しています。 Xcode 9.0で動作確認済みのものには 、Xcode8.3で動作確認済みのものには を付けています。 Xcode 9 / 8 2017/10/15追記 Xcode9や8でこれらのプラグインを使用するためには、各プラグインにUUIDを追加する必要があります。 追加を一括で行ってくれるツールがこちらです。 インストールして、実行後、Xcodeを再起動することで、Alcatrazを含むいくつかのプラグインが使用可能になります。 環境にもよりますが、プラグインのインストール後、Xcodeを起動す

    開発が爆速になるSwift用Xcodeプラグインをまとめてみた - Qiita
  • Linuxパフォーマンス調査などで使うコマンドメモ - Qiita

    パフォーマンスなどの調査をする時に利用する便利コマンドメモ。 これないぞ、あれないぞなどあると思いますがとりあえずなどを参考にまとめたものをピックアップしています。 参考 [24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ) 絵で見てわかるシステムパフォーマンスの仕組み CPU使用率やメモリなど全体の概要把握 top デフォルトでは3秒ごとにOSで利用しているプロセスの数や状態、またOS全体のシステムリソース状況が分かります。 パフォーマンスが悪い場合にOS全体としてどのリソースの利用が多いのか(CPU負荷なのかメモリ利用率が高いのか)などの判断に有用だと思われます。 top - 22:36:56 up 28 min, 2 users, load average: 0.00, 0.02, 0.

    Linuxパフォーマンス調査などで使うコマンドメモ - Qiita
  • あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita

    はじめに サーバ管理をしている身としては、 セキュリティ は常に付きまとう悪魔みたいなもので、このセキュリティに関しては何をどこまで頑張ればいいのか不透明な部分が多い。 脆弱性に関しては、CVEなど、毎日情報は入ってくるが、それがどのサーバの何に関連したものなのかなんていちいち調べてられないし、どの脆弱性がすぐに対応しなければいけないもので、どの脆弱性があとあと対応すればいいものなのかなんてわからない。 実際のところ、大きな話題になった脆弱性くらいしか緊急で対応してないという人は多いのではないかと思う。 そんな中、満を持して登場したのが vuls !! 各サーバの脆弱性情報を取得して、個々のサーバそれぞれでどんな脆弱性があり、どのくらいやばい脆弱性なのかを検知できるようになった! 今回はこのvulsを紹介します。 Vulsとは 公式でロゴが発表されたので、差し替えました 公式ドキュメント:

    あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita
  • Spring-Sessionを使ってみた - Qiita

    Tomcatセッションを外部ストレージに置き換える場合にどうしてもTomcat側で難しい設定をしたり、ライブラリを配置したりで億劫になることが多かった。 pom.xmlにdependencyを追加したら置き換わるくらいの簡単なもので、且つセッションストレージがRedisとなるものを探していた。 そんなところにSpringのリリースブログで今月初めにこんな記事を見つけた。 Spring Session 1.0.0.RELEASE TODO (2015/04/14追記) あとでまとめる CookieHttpSessionStrategyにバグがあるため@EnableRedisHttpSession#maxInactiveIntervalInSecondsの値が反映されない → https://github.com/spring-projects/spring-session/issues/10

    Spring-Sessionを使ってみた - Qiita
  • try! Swift 2016 個人的おすすめセッションまとめ - Qiita

    網羅的なものはすでに素晴らしいtry! Swift 資料まとめがあります。ここでは3日間のセッションを聴いて個人的におすすめのものをテーマ別にピックアップしました。 Swiftによる実践的な開発の話 文化を調和させる by Daniel Steinberg OOP, POP, FPの考え方を使ってViewControllerをリファクタリングしていく 再利用可能な部分を引き離して分離 SwiftらしいTable View Controllerの使い方 by Chris Eidhof UITableViewControllerをライブでリファクタリングしていく Genericsを使って再利用可能にする init時に渡すものをstructにまとめる モダンCore Data by Daniel Eggert Core Dataの話ではなく、Core Dataを例に古いAPIをどのようにSwif

    try! Swift 2016 個人的おすすめセッションまとめ - Qiita
  • ログイン・ログアウト機能をサーバレスアーキテクチャで実装する - Qiita

    ※実運用では、登録日などの項目も持たせて、セッションタイムアウト時間も設けたほうが良いです。 Lambdaファンクション ログイン処理 入力値として、emailとパスワードを受け取ります。 ログインに成功すればセッションIDを返します。webシステムで使う場合はこのセッションIDをcookieに保存して引き回してあげましょう var aws = require("aws-sdk"); var doc = require('dynamodb-doc'); var crypto = require('crypto'); var dynamo = new doc.DynamoDB(); exports.handler = function(event, context) { if ( typeof event.email === 'undefined' || typeof event.passw

    ログイン・ログアウト機能をサーバレスアーキテクチャで実装する - Qiita
  • SpringでDIされるオブジェクトのMockテスト その2

    「SpringでDIされるオブジェクトのMockテスト」の続きです。 その後いろいろ書いていて、これが一番かなという結論に達したので紹介します。 (4) MockitoとReflectionUtilsを使う (3)とやってることは同じです。 @ContextConfiguration(locations = "classpath:context.xml") class ServiceASpec extends Specification { @Autowired private ServiceA serviceA def setup() { RepositoryB repositoryB = Mockito.mock(RepositoryB.class) ReflectionTestUtils.setField(serviceA, "repositoryB", repositoryB) }

    SpringでDIされるオブジェクトのMockテスト その2
    gologo13
    gologo13 2016/04/14
    ReflectionTestUtils
  • 大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita

    Help us understand the problem. What is going on with this article? 3月24日に発表になったLINEのBOT API Trial Accountが、いよいよ4月7日から実際に試せるようになりました。既に多くのBOTが開発者の手によって作られ始めたようですね。QiitaにもいくつかBOTの作り方が投稿されていますので、"LINE BOT"というキーワードで探してみてください。 実際の作り方の基は他の投稿に任せるとして、BOT API自体は非常にシンプルな作りなので、試すこと自体はすぐにできると思います。しかし、シンプルな反面、仮に近い将来「Trial」が取れて、友だち50人制限が撤廃された時、それでも正しく安定的に動作するBOTとするには、アーキテクチャ上の工夫が必要になります。個人的に、既にLINE BusinessCo

    大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita
  • ソシャゲエンジニアの自分がコードレビュー時に重視する箇所33選 【随時追加】 - Qiita

    コードレビューで土日に安寧を ソーシャルゲームは、ユーザアクセス集中と、それに伴うユーザデータ増加によって劇的に負荷が上がり、(主に土日に)サービスに影響を与えがちです。 問題があるコードは、たとえ負荷テストを行っても、作成したシナリオによっては見つけられない可能性もあります。 そういった見えない不安を払拭するという意味でも、コードレビューは重要だと思っています。 【ステキポイント】 ・ ソースを見ることにより、時限爆弾が土日に爆発するのを解除 ・ スキル共有によってメンバーがレベルアップすることにより、土日に爆発する時限爆弾の設置確率低下 まぁまとめると これに尽きます(4歳の息子談) 今は、gitのプルリクエストという強力なレビューツールもあり、敷居がかなり低くなったのでオススメです! チェックするポイントは5つ コードレビューを行うにあたり、「どんなところをチェックすればいいのか分か

    ソシャゲエンジニアの自分がコードレビュー時に重視する箇所33選 【随時追加】 - Qiita
  • セッション管理の要注意点 - Qiita

    Webアプリを開発するに当たって、「自分でセッションを書きたい」なんて思う人はおそらく1%もいないでしょう。とはいえ、標準で備わっているセッション機能に問題や機能不足があって、手を入れざるを得なくなる、という場面も多々存在してしまいます。ここでは、セッションまわりでよく問題になる部分について触れてみましょう。 そもそも、セッションとは Webアプリにおけるセッションは、 接続ごとに固有の識別子(セッションID)を割り当て、その接続を使った通信のたびにセッションIDを送受信する セッションIDと紐付ける形でデータを持って、アクセスごとに値を読み出す。 データが書き変われば、書き戻す。 というような流れで、「接続ごとにデータを保存する」ということを実現しています。 セッションとCookie 上の1にあるような「通信のたびにセッションIDを送受信する」ために使われるのがCookieです。ただ、C

    セッション管理の要注意点 - Qiita
  • Spring-Bootの設定プロパティと環境変数 - Qiita

    Spring-Boot便利ですね。Springここまで進化しとったんかという感じです。 システムを作るとどうしても「設定」と「プログラム」を分離する必要が出てきます。 Javaには標準的にpropertiesファイルというやつがあるのですが、「どこからそのファイルを探すの?」というのは自前で作りこまなくてはなりません。 今日はSpring-Bootのそのへんの便利さについてです。(はっきり言って自分メモ) 読み込み優先順位の話 ここに、こんな記述があります。この中から自分が興味あるのだけピックアップします。 Command line arguments. JNDI attributes from java:comp/env. Java System properties (System.getProperties()). OS environment variables. A Random

    Spring-Bootの設定プロパティと環境変数 - Qiita
    gologo13
    gologo13 2016/04/04
    環境ごとの設定切り替え. JavaConfig でも可能 @Profile("Production") /
  • もう保守されない画面遷移図は嫌なので、UI Flow図を簡単にマークダウンぽく書くエディタ作った - Qiita

    はじめに Webサービスやアプリを企画したり、立ち上げたりする際にプロトタイピングツールや、ExcelPowerpoint、Illustraterなどを駆使した謎のファイルで画面遷移図を描くことがある。 こういう図を元に仕様を決めて行って、サービスを作っていくのは以下の点で困る。 画面遷移図が保守されない。 書くのが非常に面倒くさい ユーザーのモチベーションの流れが追いづらく、見た目ばかりに注目してしまうものになりがち マシンリーダブル(ソフトウェアで構造を取り出せない)でない。 このような欠点があってどうにも扱いづらい。 そんなわけで、markdown風のテキストから簡単に画面遷移図を描けないかなとコンパイラを作成し、次にそれをインタラクティブに編集できるエディタを作成した。 UI Flows図について 画面遷移図的なものを書く際に、僕が個人的につかっていた表現方法として、UI Flo

    もう保守されない画面遷移図は嫌なので、UI Flow図を簡単にマークダウンぽく書くエディタ作った - Qiita
  • 翻訳: WebAPI 設計のベストプラクティス - Qiita

    これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公

    翻訳: WebAPI 設計のベストプラクティス - Qiita
    gologo13
    gologo13 2016/03/27
    結構学びあった / スネークケースがbetter / ラップせず返す / pagingはresponse header(Link)に / API major verはURLに、minor ver はheaderに
  • 全盛期のJeff Dean伝説 - Qiita

    Jeff Deanとは GoogleのSenior Fellow. Googleの基盤となる分散システムのほぼ全てに中心的に関わり、圧倒的なエンジニアリング能力を発揮したらしい。あまりにも尊敬されているため、IT業界において全盛期のイチロー伝説のような破天荒なホラ話のネタにされている人。 日語での紹介がなさそうだったので意訳してみました。 元ネタはこちら。多すぎるのでGoogle社員じゃない人には面白みがわかりにくそうなもの、面白みが被っていると私が判断したものなどは省いてあります。 NP問題 Jeff DeanがGoogleの採用面接を受けたときに、もしP=NPが成り立つとしたらどうなるかを問われて"P=0かN=1ですね"と答えた。試験官が笑い終わりさえしないうちに彼はGoogleのpublic keyを突き止め、private keyをホワイトボードに書き終わった。 Jeff Dea

    全盛期のJeff Dean伝説 - Qiita
  • RxのHotとColdについて - Qiita

    UniRxについての記事のまとめはこちら RxのIObservable<T>にはHot/Coldという大きな2つの特徴があります。 これら性質を理解しないままストリームを設計すると、意図した動作をしてくれない場合があります。 今回はこのHot/Coldの性質について簡単にまとめたいと思います。 概要 一言で言うと? Cold : ストリームの前後をつなぐだけのパイプ。単体では意味が無い。だいたいのオペレータはこっち。 Hot : ストリームから値を発行し続ける蛇口。常に垂れ流し。後ろにパイプがたくさん接続できる。 細かく説明すると Cold Observable 自発的に何もしない受動的なObservable Observerが登録されて(Subscribeされて)初めて仕事を始める ストリームの前後をただつなぐだけ。ストリームを枝分かれさせる機能は無い。 Hot Observable 自

    RxのHotとColdについて - Qiita
  • 読んで良かった基礎知識の入門書 - Qiita

    Help us understand the problem. What is going on with this article?

    読んで良かった基礎知識の入門書 - Qiita
  • WordPressで3000万PV/月のサイトをさくらのクラウドに構築した話 - Qiita

    今回のサイトを含め、WordPressでのサイト構築Tipsをこちらで更新中です。 http://qiita.com/yousan/items/c925f0a241be02a55292 はじめに 一日のPVが100万、月の3000万PVのサイトを某ブログシステムからWordPressに移行する案件がありました。 ウェブサイトの規模感を計る指標はいくつかありますが、僕の中では100万PV/月を超えてくると中規模かな、と思っています。 3000万PV/月ですとそこそこの規模感ですね。 「WordPressで大規模サイトって大丈夫なの?」と聞かれる事がありますが結構大丈夫です。 このサイトをさくらのクラウドへ移行しました。OSパッケージとしてKUSANAGIを利用しました。 KUSANAGIを使えばCentOS + nginx + php-fpm (or hhvm) 周りをそこそこの初期状態で設

    WordPressで3000万PV/月のサイトをさくらのクラウドに構築した話 - Qiita