タグ

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

  • Java8からJava11への変更点 - Qiita

    Java 8からJava 11 http://openjdk.java.net/projects/jdk9/ http://cr.openjdk.java.net/~iris/se/9/latestSpec/apidiffs/overview-summary.html https://openjdk.java.net/projects/jdk/10/ http://cr.openjdk.java.net/~iris/se/10/latestSpec/apidiffs/overview-summary.html https://openjdk.java.net/projects/jdk/11/ http://cr.openjdk.java.net/~iris/se/11/latestSpec/apidiffs/overview-summary.html 言語 まず言語についての変更点です。

    Java8からJava11への変更点 - Qiita
  • Rustでテキストエディタを作る - Qiita

    はじめに 最近コンソール上で動くテキストエディタを作ったので、その中で得たノウハウなどを記事にしてみます。 作ったのはこちら https://github.com/hatoo/Accepted (Rust競技プログラミングをするために作ったエディタなので興味のある方は使ってみてください!) ですが、この記事では新たに簡単なテキストエディタを作ってみたいと思います! https://github.com/hatoo/kiro 参考文献 Build Your Own Text Editor この記事で作るもの ターミナル上で動くテキストエディタ 日語対応 モードレス 状態の管理が面倒そうなのでVimとは違いノーマルモード、インサートモードなどのモードがないエディタを作ります 要はターミナル上で動く「メモ帳」です Rawモード 普通にコンソールプログラムを作って動かしているときの様子を思い出

    Rustでテキストエディタを作る - Qiita
  • 個人アプリ開発を支える技術と開発フロー - Qiita

    iOS Advent Calendar 2018 の 10 日目です。 アプリをいくつかリリースしたり、ハッカソンでアプリを作ってきた中で個人的に定石となってきた開発フローや使っているツールなどをざっくりと時系列順で紹介します。 企画・アイデア 日頃から、何気なくアイデアを考えたりしています。「これ不便だな」と思ったら、どんなツールがあれば良くなるんだろうと考えてアプリのアイデアにしたり、Twitter などで面白い技術を使った動画を見つけたら、「これって他にも応用できないかな」と考えたりしています。 アイデアを考えているだけでは 3 日後には忘れてしまうので、メモをしておきます。 自分がよく使っているのは Trello と Simplenote です。 Trello でボードを作り、ジャンル (ユーティリティ、ゲームなど) ごとにリストを作って、アイデアのコア部分をカードにメモしています

    個人アプリ開発を支える技術と開発フロー - Qiita
  • 「Vue.js + Go言語 + Docker」で作る!画像アップロード機能実装ハンズオン - Qiita

    こんにちはpo3rinです。Vue.js Advent Calender 2018 9日目の記事です。 8日目の記事は vue.js(nuxt.js) の plugin はとても便利 でした。 11月にフリーの案件で Vue.js + Go言語で画像アップロード機能のあるCMSを作りました。Vue.jsでの実装の際には npmモジュールである vue2-dropzone を使うと、Vue.js にとって便利な機能が提供されており、すぐにアップロード機能が作れました。なので今回は Vue.js + Go言語 で画像アップロードを行う機能の実装をハンズオン形式で紹介していきます。 今回は Vue.js のアドベントカレンダーとしての投稿なので、Go言語の実装を飛ばしたい方向けに、Go言語のインストールが不要になるように、すでにDocker環境を用意してあります。せっかくなので今回は Docke

    「Vue.js + Go言語 + Docker」で作る!画像アップロード機能実装ハンズオン - Qiita
  • 引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita

    この記事は C# その2 Advent Calendar 2018 の第一日の記事である。 はじめに この記事では、主にエンタープライズアプリケーション(SI、企業向けの業務システムやパッケージ製品)の開発に於いて、新規開発ではなく修正や拡張を行うようなシーンを想定して、無駄な工数をなるべく削減すべく自分なりに考えて実践しているベストプラクティスを書いている。 新規開発の場合でも、将来の拡張や修正が見込まれるはずなので、考慮すべき事は同じだ。 競技プログラミングや、組み込み開発の場合でも基的な考え方は適用可能だが、メモリ効率やパフォーマンスを考慮する必要もあるので、あえて配列を使ったり、逸脱するようなケースもあるだろう。 対象とする読者層は、C#プログラミング歴1年以上、SIer やユーザー企業に所属(もしくは常駐)し、特に複数人チームでの開発に携わる若手プログラマ、初級から中級へのステ

    引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita
  • サーバーサイドレンダリング不要論 - Qiita

    サーバーサイドレンダリング、Isomorphic、Universal JavaScriptなどの言葉をよく見かけます。なるほどね、良さそうだね、外部公開するサービスを書くことがあったら挑戦してみたいね、Mithrilにもisomorphic-mithrilってのをがんばっている人がいるし、みたいなことを漠然と思っていたのですが、最近ASCII.jpのシステムコールプログラミングの連載を書いていて、あらためてHTTPの仕様を見返してみて、逆にサーバーサイドレンダリングをしない方がいいのではないか、と思い始めました。 追記(23:30): サーバーサイドレンダリングと書いていますがUniversal JavaScriptみたいな凝ったビューの更新の意味です。 サーバーサイドレンダリングの欠点 サーバーサイドレンダリングのメリットとしてあげられるのは次の2点です。 検索エンジンのクローラー向け

    サーバーサイドレンダリング不要論 - Qiita
  • 報酬がQiitaを阻害する「アンダーマイニング効果」(人間とは、かくもヘンテコな生きものなり) - Qiita

    Qiitaでお金を稼げると良いのか? エンジニアアウトプットする際に、 お金を稼ぐという物理的報酬が、 モチベーション向上につながるのか? ⇒否、つながらない という考え方もあるよ、と紹介したい。 背景としては以下の記事: Qiitaでお金が稼げるなら質の高い記事がもっと増えるのではないかという提言 この提言自体は大変素晴らしい提言である。 一見すると、良い報酬があれば良い成果を生む、 という誰もが納得するような話だ。 しかし「行動経済学」の「アンダーマイニング効果」によると、 必ずしもそうとは限らず、報酬を与えることで、 逆にモチベーションが下がる場合もある。 お金が絡むと金儲けに走る人が出るからダメとかそういう理由ではなくて、 人間は必ずしも合理的に動かないという、オモシロ心理学的な話。 Qiitaへの記事投稿に限ったことではなく、もっと一般的に、 エンジニア個人開発でサービスやア

    報酬がQiitaを阻害する「アンダーマイニング効果」(人間とは、かくもヘンテコな生きものなり) - Qiita
  • ドメインオブジェクトの責務について - Qiita

    設計するとき、「このオブジェクトの責務は何だろうか?」とか「この責務に名前をつけるなら何か?」とか、責務について考えることがよくあります。そもそもその責務とは何か、という根源的な疑問について再確認すると共に、ドメイン駆動設計の観点からドメインオブジェクトの責務についても考えてみたいと思います。 責務とは 困ったときの古典引用。もう絶版になった、オブジェクトデザインという、書籍を紐解いてみましょう。DDDからの引用が多い書籍で、DDDの設計スタイルは、この書籍で紹介する「責務駆動設計(responsibillity-driven design)」の原則に従うことが大きいとされています。 この書籍によると、「責務」には以下が含まれるそうです。 「4.1 責務とは何か」 オブジェクトが行う動作 オブジェクトが持つ知識 オブジェクトが他に影響を与える主要な判断 これらの言葉を身近な言葉で置き換える

    ドメインオブジェクトの責務について - Qiita
  • JavaScriptの等値比較を全部理解する - Qiita

    皆さんこんにちは。今回の記事ではJavaScriptの等値比較について見ていこうと思います。 「どうせ==と===の違いとかだろ? 今さらそんな記事書くなよバーカw」と思った人はぜひ期待せずに読み進めてみてください。 「じゃあObject.isでしょ? 知ってる知ってる、使ったことないけど」と思った人はまあ読まなくても大丈夫です。 さて、等値比較というのは、2つの値が等しいかどうか判定することです。JavaScriptにおいて等値比較はどのように行うのか、そしてどのような場面で等値比較が発生するのかをこの記事では余すことなく紹介します。 以降、この記事で仕様書という場合はECMAScript® 2018 Language Specificationを指すものとします。 ==と=== とはいえ、まずは==と===の話をしないことには始まりません。==はJavaScript初心者がとりあえず習

    JavaScriptの等値比較を全部理解する - Qiita
  • Android + Kotlin + PITでテストコードをテストする - Qiita

    はじめに PITを使用してKotlinAndroidプロジェクトでMutation Testingを導入するまでのメモです。 Mutation Testing テストコードが正しいかを計測するために、Mutant Testingという手法があります。 Mutant Testingではプロダクトコードを機械的に変更し、変更されたコードに対してテストを実行します。そしてテストが失敗するかを確認することで、プロダクトコードの振る舞いの変更をテストコードが検知できるかをチェックする手法です。 ミューテーション解析 - Wikipedia 今回はMutation TestingツールとしてPITを紹介します。PITJavaとその他JVM言語用のMutation Testingツールです。検索するときはpitestで検索すると良いです。 PITの素晴らしい点は、3rdパーティー製Android用G

    Android + Kotlin + PITでテストコードをテストする - Qiita
  • 記事のスクレイピングを機械学習で自動化 - Qiita

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

    記事のスクレイピングを機械学習で自動化 - Qiita
  • [React] Component と PureComponentの違い - Qiita

    1. 前書き React は Component を Update するか決定する過程で、 Component の shouldComponentUpdate を実行し、Update する必要があるか判断する。 Reactは shouldComponentUpdate で true を返すと Update する必要があると判断し、 false を返すと Update をする必要がないと判断する。 2. PureComponentとは React PureComponent はデフォルトの shouldComponentUpdate を変更した Component である。 浅い比較(shallow-Equal)によって Update するかしないかを決定する。 React.PureComponentのイメージ class PureComponent extends React.Compon

    [React] Component と PureComponentの違い - Qiita
  • 4大クラウドKubernetesサービス比較(2018年10月18日)

    グローバル展開するクラウド・ベンダーを対象にKubernetesサービスのスペックを比較しました。追加・修正ありましたら随時更新しますのでコメント欄にてお知らせください。

    4大クラウドKubernetesサービス比較(2018年10月18日)
  • Istio入門 その1 -Istioとは?-

    はじめに Istioの全体像がわかるよう、数回に分けて入門してみます。今回はコンセプトやざっくりとしたアーキテクチャの話、次回からはサンプルのbookinfoアプリケーションを元に各機能を深掘りしていく予定です。 Istio入門シリーズ * その1 -Istioとは?- * その2 -Istio構築とサンプルアプリのデプロイ- * その3 -Blue/Greenデプロイメントによるカナリアリリース- * その4 -基礎から振り返る- Istio1とはマイクロサービスをセキュアにマネージメントするためのOSSで、Kubernetes同様CNCFの一員です。 マイクロサービス化が進むにつれてA/Bテストやカナリーリリースに20%のアクセスのだけ割り当てたいなどの要望により、サービスメッシュ2はより大きく、より複雑になりました。Istioは、このような「複雑なサービスメッシュの管理が追いつかない

    Istio入門 その1 -Istioとは?-
  • あなたのエラーコードは何ですか?

    システムにおいて必ずといっていいほど存在するエラーコード。 このエラーコードってプロジェクトによってさまざまな形式だったりします。 そんなエラーコードとそのハンドリングで比較的上手くいっているパターンについてご紹介します。 具体的には列挙体を使ったエラーハンドリングです。 エラーコードの型は何ですか? ソフトウェアやハードウェア、およそコンピュータに関わっていれば必ずといっていいほど目にするエラーコード。 皆さんが作っているシステム、日々携わっているシステム、それらのエラーコードってどのようなものでしょうか。 より具体的に言えばどんな型のエラーコードを取り扱っていますか? 例えば数字です。 80011 こんなエラーコードがあるでしょう。 例えば文字列です。 'E1000' こういったエラーコードもあるでしょう。 色々なエラーコードが存在する世の中で今挙げたエラーコードを取り扱っている方もい

    あなたのエラーコードは何ですか?
  • 2018年Vue.jsとVuexを使ってる人には必ず知っていてほしいドキュメントに書かれていないコンポーネントやストア、メンテナンスの際に役立つTips - Qiita

    2018年Vue.jsとVuexを使ってる人には必ず知っていてほしいドキュメントに書かれていないコンポーネントやストア、メンテナンスの際に役立つTipsTypeScriptes6DesignPatternsVue.jsVuex はじめに 私はVue.js with Vuexを使った業務で1画面30APIを叩く必要のある画面から、たったの数APIしか叩かないけれど、代わりにUIがとても機能的で複雑な画面まで設計し、構築しました。 現在は構築したシステムを保守・運用しており、その際に得られたノウハウを言語化し、共有出来たらと思います。 ※ 記事の内容に意見がありましたら直接編集リクエストをください。 ※ パフォーマンスの話はしません。 ゴール 役立つTipsを身につけコード品質を向上させる コンポーネントのバグを減らせるTips ほとんどのバグは変数から来ます。 もし全ての値が定数なら状態から

    2018年Vue.jsとVuexを使ってる人には必ず知っていてほしいドキュメントに書かれていないコンポーネントやストア、メンテナンスの際に役立つTips - Qiita
  • DockerでVue.js+TypeScript開発環境を構築する - Qiita

    概要 Docker上でVue.jsの開発ができるようにする手順です。 Vue-Cliでプロジェクト作成する場合、TypeScriptやSCSSVuexなどを追加できるので便利です。 GitHubのリポジトリにUPしていますので、興味のある方はご参照ください。 https://github.com/kai-kou/vue-js-typescript-on-docker 手順 Dockerファイルの作成

    DockerでVue.js+TypeScript開発環境を構築する - Qiita
  • プログラミングが大好きなWeb系エンジニアの50代以降のキャリアに関する考察 - Qiita

    先日、サイバーエージェントさんの「身に着けた技術をいかに捨てられるか。エンジニア歴39年、今でもエンジニアで居続ける理由。」という記事が大変話題になりました。 プログラミングやテクノロジーが大好きでWeb業界で働いているエンジニアの方の多くは、「可能であれば50代以降も現場で"手を動かすエンジニア"として働きたい」と考えてらっしゃると思いますが、平松さんのような方はかなり例外的で、Web業界で多数の現場を経験してきた私でも、50代以上の現役エンジニアの方とご一緒にお仕事をさせて頂いた経験は残念ながら一度もありません。 私は現在、雑エンジニアTVというYoutubeチャンネルで、Web系エンジニアのキャリアに関する情報を色々と発信させて頂いているのですが、視聴者の方から「Web系エンジニアの50代以降のキャリア」に関してご質問頂いても、完全に未知の領域になる&ロールモデルとなる方があまり

    プログラミングが大好きなWeb系エンジニアの50代以降のキャリアに関する考察 - Qiita
  • モダンなJava開発ガイド (2018年版)

    2018年現在でもJava開発をしていると、Antすら使っていないEclipseプロジェクトにそこそこの頻度で出くわします。Eclipseの自動コンパイルが通ればOKであり、ビルドはExcel手順書をもとに手動で行われ、依存関係ライブラリはもちろんlibフォルダに各種jarファイルが放り込んであります。Eclipse上以外ではどう動かせば分かる人がいないため、コマンドラインからビルドなどを行うことは叶わず、CI化なんて夢のまた夢です。 そんなJava開発から脱却したい人向けのJava開発のモダン化ガイドです。 基的にJava 8以降での開発を想定しています。 OpenJDK/OracleJDK上での開発を想定しています。 Android開発の場合は一部適用できない可能性あり。 英語のIDE、ツール等は積極的に使用します。 英語嫌いだとモダン化は難しい。 Java開発全般を前提としているた

    モダンなJava開発ガイド (2018年版)
  • オブジェクトの比較に JSON.stringify() を使ってはいけない —— プロパティには順序が無い - Qiita

    たまたま動いているコード オブジェクト同士の比較に JSON.stringify() を使う例がそこかしこで見られます。 典型的には、 のようなコードです。 オブジェクトの中身を再帰的にたどって比較する、いわゆる「深い比較」で「deep equality」を判定したい場合に使われる事が多いようですが、これはとても危うく、いつ壊れてもおかしくないコードです。 理由 まず、JSON化する際にそのまま含まれないプロパティ(enumerableでなかったり、値が関数であったりするものなど)がありますが、これは考慮の上でのことが多いでしょう 問題は、配列でないJavaScriptのオブジェクトには順序が無く、JSONにされる際にもプロパティの順序がどうなるか決まっていないことです。 MDNには、 配列でないオブジェクトのプロパティは、特定の順序で文字列化されることを保証されてはいません。文字列化にお

    オブジェクトの比較に JSON.stringify() を使ってはいけない —— プロパティには順序が無い - Qiita