2020/03/03 に富士通本社で行われた、富士通TechLiveに発表資料です。 コロナウィルスの影響で、リモート発表になりましたが、当日は800人以上の方に同時視聴していただきました
![スクレイピングとPython](https://cdn-ak-scissors.b.st-hatena.com/image/square/9eb85d0d773e38a24fcce37d43bca44d4fea6852/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fpython-151124033759-lva1-app6892-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Python開発者が大好きな言葉があります。それは”全てはオブジェクトである”です。実際、私自身もPythonのクラスを教えているときに何度も口にしています。多くの人が何度も聞いた言葉かもしれないのですが、私が言う度に生徒は賛同の相槌をしてくれます。結局のところ、Javaにおいて全ては(対象がそうでない場合を除いて)オブジェクトであり、.NETにおいても全てはオブジェクトであると、よく言われています。 しかしPythonにおいて全てがオブジェクトであると言う時、(私の生徒は驚いていましたが)「 全て 」にはクラスも含まれているのです。これはとても筋が通っていて、オブジェクトシステム全体が理解しやすくなります。しかしそれでも、広い視野で物事を見ることは難しいのです。 今回のブログ記事では、Pythonのオブジェクト間のつながりをざっと見ていきたいと思います。そして”全てはオブジェクトである”
Lightning Talks Driven Learning. This talk for my study. Perhaps it is not interesting for you☻
前回、最近割と暇とか書いたらなんかエラーが増えてきて対応しなきゃって事案が発生した。Rubyなアプリケーションの運用は今の会社で初めてなんだが、こういうトラブルに直面すると知見が増える。 いうてもやることは結構あるっちゃあるんだけどね。直近だとうるう秒対応とか…。俺んとこはntpd止めることにした。で、うるう秒経過後に起動する、と。ワケあって本番のOSがgentooだし、何が起きるかわからんので。AWS上にいるAmazon Linuxや、GCE上にいるUbuntuはslewモードで乗り切る。しかしまあマルチクラウドも考えものだな…。運用しづらい。個人的には今のGentooなインフラをAWSに移したいんだが、会社としてまだその判断はしないようだ。まあインフラ周り見てるの俺一人しかいねーしな…。 環境 Ruby 2.0.0 Rails 4.0.1 Unicorn 4.6.3 Octopus 0
ECMAScript6にシンボルができた理由 で紹介されている Symbol の使い方を見て、fmfm するためのエントリです。 似て非なる 2つの NativeObject 拡張ライブラリを同時に読み込むとどうなるか 例 Array に JSON.stringify(Array) 相当の機能を拡張するライブラリが2つ(AwesomeArray.js, ExArray.js)あります。これらを読み込むと Array#toJSON が拡張されます。 AwesomeArray.js と ExArray.js には、カンマの後ろにスペースがある/ない という違いがあります。 ES5 式 ES5 で書かれた AwesomeArray.js と ExArray.js です。 ES5 までは、AwesomeArray.js を読み込んだ後に ExArray.js を読み込むと、AwesomeArray
概要 React + Redux の Action についてサンプルを使って、Action の作成と動作の確認をします。 準備 redux/examples/real-world からいろいろそぎ落としたこちらのソースの tag/init を使って説明します。 ※ 実装完了はtag/action Action とは Action はストアの state を変更するためのメッセージです。 Action によって state が変わると UI の表示などアプリの変化が起きるので、アプリに何か起こすための出発点となります。 Action 発行 Reducer が現在の state と action を元に新しい state を作成。 state の変更をUIなどに反映 Action は javascipt のオブジェクトでどのような形でも大丈夫ですが、慣習として type フィールドに文字列で
縁あってクラスメソッドさん&Amazon Web Servicies Japan主催の「AWSモバイル/IoTサービス徹底攻略!!」に登壇してきました。テーマは、"Swaggerで始めるモデルファーストなAPI開発"ということで、Swaggerの話です。 発表の内容 ベーシックセッションで、またそもそもSwaggerって何という人が大半を占めているという予想から、そもそもSwaggerとは何かとかREST APIとの関係、何が嬉しいのというのを中心に紹介しました。そして、AWSとの関係性ということから、Swaggerを使ってAPI Gatewayをインポートするというところまでです。 Swaggerで始めるモデルファーストなAPI開発 from Takuro Sasaki www.slideshare.net 正直なところ、私の理解が追いついていないので、この内容が精一杯でした。本当は、A
11月21日 渋谷 dots. で開催された「第5回 プログラマのための数学勉強会」のレポート記事です!今回は初の土曜日開催で、会場の規模も開催時間も拡大してお送りすることができました。 当日の朝 とある記事 を見かけて知ったのですが、なんとこの日付を並べた数字は: と、67 の 4乗 になっているのです! 67 は素数であるだけでなく 幸運数 の一つでもあり、さらに驚くことに左の数字を2桁ごとに分解して足すと: となっているのです…!こんな珍しい日に数学勉強会を開催できたことはまさしく幸運でした。 それでは、早速発表内容を振り返っていきましょう! 1. 「内積が見えると統計学も見える」@kenmatsu4 「ベクトルの内積」の幾何的な意味を踏まえ、平均・分散・偏差などを内積を使って表現しなおすことで統計量が視覚的にイメージできるようになります。授業で習う「統計学」は表やグラフが出てくるば
2018/10/22 全体的に問題があったので書き直した. 内容はほぼ変わっていない. 本記事では, 世界で最初に提案された公開鍵暗号であるRSA暗号の基礎事項について解説する. RSA暗号の動作原理について示した後, 簡単な攻撃手法の一覧を載せる. 公開鍵暗号 暗号理論, 特に現代暗号における暗号は「秘密鍵暗号(Secret-key Cipher)」, 「公開鍵暗号(Public-key Cipher)」の2種類に大分される. 秘密鍵暗号はよく知られている通り「秘密の鍵$k$を事前に共有しておき, その鍵を用いて暗号化・復号を行う暗号方式」である. これに対して公開鍵暗号は「暗号化に用いる鍵$k _ {enc}$, 復号に用いる鍵$k _ {dec}$が存在し, 暗号化・復号のそれぞれで異なる鍵を用いる暗号方式」と定義され, このうち$k _ {enc}$は一般に公開されることが多いこと
What is Perfect? Perfect is a web server and toolkit for developers using the Swift programming language to build applications and other REST services. It lets developers build using only Swift to program both the client-facing and server-side of their projects. It’s the ideal backbone for cloud and mobile technologies. Developers can be more productive and efficient using Perfect to write less co
AutomatticがNode.js+React製のMac用ネイティブWordPress管理・編集アプリ「WordPress .com」をオープン・ソースで公開しています。詳細は以下から。 WordPressの創設者Matt MullenwegさんやNode.jsのコミュニティマネージャーMikeal RogersさんなどのTwitterによると、CMSとして世界中で最も利用されているWordPressがMac用の新しいネイティブアプリを公開したそうです。 A single interface to manage all your WordPress.com or Jetpack-enabled sites, built with the latest web technologies and used by millions of people — and now it’s open s
Last week at WWDC was a massive whirlwind of learning, trying, and meeting. I had some time today to decompress and think more about some of the things that were released last week, starting with the Swift 3.0 beta. There are a lot of amazing changes in Swift 3.0, but I wanted to highlight the ones that made me especially happy (i.e. I probably excitedly tweeted about it but want to say more than
先日行われたMySQL Casual Talks #8で登壇してきた。会場を貸してくださったテコラスさん、主催者ならびに参加者の皆様ありがとうございました。 発表のネタ ネタは「トレタのMySQL」と「はじめてのRails+MySQLの運用でOctopusでハマったこと」の二つを用意したんだが、後者は内容がRailsに寄りすぎていたというのと、時間的にもアレだったので自粛した。 小規模限定回ということだったんだが、そもそもウチは小規模なんだろうか?という疑問があった。なので「これできるの小規模だからだよなぁ…」と思えることを捻出して喋ってみた。 トレタのMySQL 内容的には、 小規模だと、Likeで全文検索とかアンチパターンみたいなことやっててもでも割と動くよ。 小規模だと大規模に比べて運用は楽。でもこれは台数が少ないからということではなく、アーキテクチャがシンプルだから。 大規模であっ
TL;DR Android Studio 2.0 Preview で登場した Instant Run はとにかくアプリ開発を 5 倍ぐらい高速化できるので可及的速やかに導入すべき (20秒でわかる動画 ) Instant Run とは Instant Run は、 Android アプリ開発中に動いているアプリを インストールし直すことなく 実行中に動的に修正することができる仕組みです。エミュレータだけでなく実機でも動きます。 Java だと Hot Code Replace とか、 Visual Studio だと Edit and Continue とか呼ばれるやつです。 今までモバイルアプリ開発で公式にこれができるプラットフォームはなかったと思うので結構革新的。 (非公式だと JRebel for Android とかありました) 2015/11/22 (現地時間) の Androi
セプテーニ・オリジナルの池田です。 弊社でDockerが使用されることになり、最近Dockerについて調べました。 今回Dockerfileを使わずに、DockerをインストールしてからNginx動かし、 Dockerのコンテナ、イメージ、基礎的なコマンドなどを説明したいと思います。 目次 Dockerのインストール 公開レジストリからCentOS7のイメージを取得 コンテナ作成 コンテナ内にアプリケーションを入れる レポジトリを作成する コンテナ内部でwebサーバーの立ち上げ 参考サイト OS Amazon Linux AMI release 2015.09 Dockerのインストール まずDokcerの環境を作ります。 ◼︎ Dockerをインストール [ec2-user ~]$ sudo yum install -y docker ◼︎ Dockerを起動 [ec2-user ~]$
Rebuild駆動 RebuildはApple, Ruby, Perl, Chipmania, Web等々のTech&ガジェット話題を扱うポッドキャストです。 紙兎ロペのようなゆるいテンションなトークが、聴き続けても飽きが来ません。むしろクセになる。 kamiusagi.jp 案外めんどくさいと思ってしまう家事(洗濯、皿洗い)が、Rebuildを聴いていると苦じゃなくなる不思議。 家事をするのに大変重宝しています。 Listen-IT 最新エピソードを追うだけでは物足りなくなってきたので、聴き始めたep50より前のエピソードを聞き直してました。 その中のep8で紹介(スポンサー)されてたListen-ITという英語ヒアリング学習アプリ。 https://itunes.apple.com/app/listen-it/id512751653?ls=1&mt=8&at=10l8JW&ct=hat
Talk from Fullstack Conf London, 2015. Video: https://skillsmatter.com/skillscasts/6890-keynote-chrome-devtools-deep-dive As the complexity of the web apps you build keeps moving, so do the Chrome DevTools. In this session, Addy will give you the latest update on your favourite companion; exploring new features in performance profiling, JavaScript debugging and animation inspection. You’ll walk ou
http2 in Go 1.6; dotGo 2015 - Google スライド 2015年の5月にRFCが出たばかりのHTTP2が2016年の2月にリリース予定のGo1.6で早くも利用可能になることになっている.HTTP2の勉強も兼ねてGo言語におけるHTTP2実装を追ってみる. 以下ではまず実際にHTTP2サーバを動かしChromeで接続してみる.次に現状コードがどのように管理されているかを追う.最後に実際にコードを動かしながらHTTP2の各種機能を追う.なお参照するコードはすべて以下のバージョンを利用している(まだWIPなのでコードなどは今後変わる可能性があるので注意). HTTP2とは? HTTP/2に関してはスライドやブログ記事,Podcastなど非常に豊富な情報がインターネット上に存在する.そもそもHTTP2とは何か?なぜ必要なのか?などを理解したい場合は参考に挙げた記事など
Welkom bij Pelletkachels.nl, jouw ultieme bron voor alles wat met pelletkachels te maken heeft! Maar we zijn meer dan alleen een platform voor het bespreken van warmtebronnen. Bij Pelletkachels.nl geloven we dat het delen van kennis en ervaringen over bedrijven en gebeurtenissen ook essentieel is voor het creëren van een betrokken en geïnformeerde gemeenschap. In dit blog duiken we dieper in de we
suとsudoはオプションの違いはあるものの、できることはほぼ重複している。 ただ、suは切替先ユーザー(root)のパスワードが要求されるのに対し、sudoは元のユーザーのパスワードが要求される。sudoは/etc/sudoersで権限を細かく設定できるので、どちらか片方だけ覚えるならsudoだけを覚えておくとよい。 オプションによって実行後のカレントディレクトリや環境変数が変わってきて、それでハマることがあるので違いをまとめておく。 (Amazon Linuxで確認。CentOSでもほぼ同じと思うが、他のディストリビューションでは違う可能性あり) コマンド .bash_profile .bashrc pwd HOME PATH
モバイルアプリのデータベースのマイグレーションをORMで実装するにはどうしたらいいか考えている。 Perl界隈だと SQL::Translator::Diff というモジュールが知られていて、たとえば以下のようにDDLの「差分」をとることができる。 $ cpanm SQL::Translator::Diff $ cat old.sql CREATE TABLE foo ( id INTEGER PRIMARY KEY, title TEXT ); $ cat new.sql CREATE TABLE foo ( id INTEGER PRIMARY KEY, title TEXT, content TEXT ); $ sqlt-diff old.sql=SQLite new.sql=SQLite -- Convert schema 'old.sql' to 'new.sql':; BEGI
ちゃお。舞い降り......† ハイパフォーマンスPython 作者: Micha Gorelick,Ian Ozsvald,相川愛三出版社/メーカー: オライリージャパン発売日: 2015/11/20メディア: 大型本この商品を含むブログ (3件) を見る 11/20にオライリーのHigh Performance Pythonの日本語版が出るようです。 著者のMicha Gorelickさんの紹介文がエキセントリックなことで一部で話題沸騰中な本です。(未来から来たマッドサイエンティストらしい...†) 私は先に出た英語版を読んでMorris Countingという推定カウントアルゴリズムが面白いと思ったんですけど、検索してみたら日本語だとあまりヒットしなかったので、今回はそのお話をしたいと思います。トニーモリス (有名人) の話じゃないよ〜。 さてMorris Counting [Mor
畳み込みニューラルネットワーク (Convolutional Neural Network) を勉強するため、MNISTのデータの識別をライブラリ(Caffeやcuda-convnetなど)を使用せず一から実装してみましたが、ここでは備忘録として書いていくことにします。 出来る限り理解し易いように書いていくように努力はします。(^_^;; おかしな点があれば教えてください。お願いします。 まずは二値分類 多次元の入力データから、それが識別対象かそうでないか(例えば画像から人かそうでないか)といった二値分類の学習を考えます。 入力を\(n\)次元の\(\mathbf{x}=(x_1\ x_2\ \dots\ x_n)^\text{T}\)*1、重みを\(\mathbf{w}=(w_1\ w_2\ \dots\ w_n)^\text{T}\)とし、これら入力と重みを掛け合わせたものとバイアス\
Java にはリフレクションがあり、当時は目新しかった。 人々がリフレクション API を使いこなしだすと遅さが目立ち始めた。ライブラリ開発者はリフレクションを実行時バイトコード生成で置き換えた。こうして Java のバイトコード編集ライブラリが発達した。 言語仕様にアノテーションが追加されたのも同じ頃。アノテーションと実行時バイトコード生成が Java フレームワークのデザインに与えた影響は大きく、モダンなサーバサイド Java は案外簡潔なコードを書けたりする。XML がアノテーションになっただけ、とは言わない約束。いちおう型をチェックできるし、冗長といわれる Java だって XML よりは簡潔だし。 Android Java は実行時に Java バイトコードを解釈できない。だから Java のコード生成資産が使えない。実行時にロードできる DEX にもデータを一旦ファイルに書かな
GoでSSHコマンドに便利機能を追加したコマンドを作りました。 2017/04/11 追記: この記事の内容は古くなっています! 2017/04/11時点の最新の仕様は、次の記事を参照してください SSHラッパーコマンドEsshのv1.0.0をリリースしました - オープンソースこねこね 追記ここまで。以下は2015/11時点の古い情報となります。 github.com 機能として Luaで~/.ssh/configに相当する設定を書ける。 zshの補完機能を使って、接続先一覧を出す。 サーバ接続時にフックを仕込める。自分はスクリーンの色を変えるの使っている。 複数のリモートサーバにまとめてコマンドを実行する。 といったところです。詳細はリポジトリのREADMEを見ていだければと思います。 ビルド済みバイナリをリリースページにおいてあるので、インストールはダウンロードして解凍してパスの通っ
<?php $targetAppIds = array( 'id834802911', 'id443904275', ); $feed = file_get_contents('https://itunes.apple.com/jp/rss/topfreeapplications/limit=100/xml'); $rss = simplexml_load_string($feed); $result = array(); foreach($rss->entry as $val) { $ranking++; $title = $val->title; $url = $val->id; foreach ($targetAppIds as $targetUrl) { if (strpos($url, $targetUrl) !== false) { $result[] = array( 'ap
Javaパフォーマンス 作者: Scott Oaks,アクロクエストテクノロジー株式会社,寺田佳央,牧野聡出版社/メーカー: オライリージャパン発売日: 2015/04/11メディア: 大型本この商品を含むブログ (11件) を見る とても馬鹿っぽいタイトルになってしまったが、気にしないのである。 だいたいの内容としては、 パフォーマンス・チューニングに関する一般論 Java付属のモニタリングツール(jstatとかあれとかこれとか) JITコンパイル周りについて GCについて 等々がいい感じに、過不足なく書いてある。 既にJava10年選手で、GCのチューニングもしたことあるし、JVMとは戦友みたいなものだ…みたいな人にはおそらく必要ないだろうが、JVM周りのあれやらこれやらを知らない人(つまり僕のような)がとりあえずJava始めてみたときに、頭の中に見取り図を書くためにはこの本を読むのが
一人でプログラムを書いてたりすると、環境によってはあまりコードの書き方には指摘を受けなくて困りますよね。プロになっても、曲がりなりにもちゃんと動くコードを書けてしまうとあまりに当たり前のことなんかは指摘されることも稀で、そのままある程度偉くなっちゃった日には、もはや自分で気付くしかなくなってしまいます。 FindBugsとか、Effective Javaなら使ったり読んでみたり読ませたりすることはできますが、それ以前のところって難しいんですよね。よいコードと言うよりそれが当たり前だと思われているので、指摘するにしても「こうすればいいよ」(アドバイス)じゃなくて「なんでこうしてないの?」(詰問)になってしまいがちです。 そこで、最近そういうJavaニュービーに指摘している(したい)ことの多い、Javaの基礎的な事柄をまとめてみました。ワタシJavaチョットデキルって人は、これ以外にもやりがち
週末の自由工作でマテリアルデザインのカラーパレットを使いたいんだけど、さすがにこれを自分で CSS ファイルに書くのはダルイなぁと。 Color - Style - Google design guidelines material-colors だけど、同じことは他にも考えている人がいるはずで、誰かがつくってくれてるんじゃない?と思ったら、あった。(ありがとうございます) shuhei/material-colors 使い方 CSS, Sass, SCSS, Less, Stylus, JSON, JavaScript 等いろんな言語から使えるようになっている。例えば SCSS からは $md-red-100 とか定義された変数を使う感じ。 中身は dist 配下を見れば分かる。 https://github.com/shuhei/material-colors/tree/master/
The following guide can help you optimize your Ubuntu server in order to be able to support a high number of requests, without reaching any of the defaults limits. It is not meant for security, only performance. After configurations are done, please reboot your server. Tune global limits add to /etc/sysctl.d/999-perf.conf fs.file-max=1048576 fs.inotify.max_user_instances=1048576 fs.inotify.max_use
当方機械学習素人につき大して興味はなかったものの、実は Jeff Dean 案件だと気付き whitepaper くらいは読むことにした。 ぎもん: Jeff Dean といえば MapReduce や GFS を作った Google の神話級プログラマ。そんな分散インフラの達人がなぜまた深層学習に手を出したのだろう。 わかったこと: TensorFlow は、行列(というかテンソル)に特化したデータフロー・プログラミングの分散実行処理系だった。 データフロー・プログラミングとは、データを受け取り何か計算して結果を誰かに渡す、という単位のオブジェクト(ノード、カーネルなどと呼ぶ)をつなぎ合わせてグラフをつくり、より大きな計算を表現する抽象化のパターン。最近はリアクティブの文脈で目にすることが増えた。 そして MapReduce/Hadoop も今はデータフローの枠組みでコードを書くことが多
はじめに HTML/CSS/JSを使ってデスクトップアプリケーションが作成できるElectron。 本記事ではデスクトップウィジェット作成するまでの流れを、簡単な時計アプリを題材として解説します。 ※ この時計アプリのソースコードとパッケージは、GitHubにて公開しています。 GitHub: SallyAcolyte/tutorial_clock 対象読者 - HTML/CSS/JSで簡単なアプリは作れるが、Electronは初心者な方 - Electronで透過ウィンドウ/フレームレスウィンドウを扱う際のポイントが知りたい方 - 自分好みなデザイン/機能を持つウィジェットを作成したい方 ※ Windows環境を前提としていますが、基本的な流れは他環境でも同様です。 チュートリアル Electronの入手 Electronの本体は、以下からダウンロードできます。 Releases · a
さて、このタイトル、かなり挑発的ですよね。それは認めます。もう少し説明すると、私は大胆なタイトルが好きなのです。人の注意を引くことができますからね。とにかく、この記事では、Goがひどい設計の言語(実際、本当に全て台無しになります)だということを証明していこうと思います。私は既に数カ月間Goで遊んでいますし、たしか6月のいつだったかに初めてHello, Worldを走らせてもみました。私は数学がそんなに得意ではありませんが、あれから既に4カ月経っていますし、 Github 上のパッケージもいくつか手に入れました。言うまでもありませんが、私は仕事でGoを使ったことは全くないので、”コードサポート”や”デプロイ”やそのあたりに関する私の意見は話半分で読んでくださいね。 私はGoが大好きです。使ってみて大好きになりました。慣用表現を理解したり、ジェネリクスがないことや、おかしなエラーハンドリングや
はじめに 藤本です。 Elasticseachに取り込むネタが続いています。 前回のELBのアクセスログをAWS LambdaでElasticsearchに取り込むに続いて、今回はRDS for MySQLのスロークエリログをElasticsearchに取り込む実装をご紹介します。 概要 MySQL Serverはスロークエリーログにより指定した秒数を超えるクエリを記録することができます。スロークエリログはパフォーマンス劣化の解析、クエリの適切性、DBのマシンパワーの適切性のチェックに役立ちます。RDS for MySQLも例外ではありません。パラメータグループを設定することにより、スロークエリログを有効にすることができます。それに加えてRDS for MySQLの場合、AWSのAPIによりデータベースに接続せずともスロークエリログを取得することができます。 スロークエリログフォーマット
少し前にStarletにGraceful Restartが時たま上手く動かない問題を修正するpullreqを投げました。 原因は割り込みハンドラ内でexitを呼んでいたからでした。 「割り込みハンドラ内ではフラグを建てるだけ」 「メインのプログラム内でそのフラグを見て分岐する」という原則があるのですが、それを守るのは難しいということですね。 (しかし新たな問題を産んでしまいrevertされてしまいましたが・・・ まあ修正後のコードも考え方は一緒です。割り込みホント難しい・・・) このpullreqを取り込んでもらうときに再現実験をやってみたのですが、 Goでもちゃんと動くのかな?と気になったので Go言語でGraceful Restartをするで紹介した プログラムに同じテストをやってみました。 2017-01-22追記: Go1.8以降でGraceful Shutdownがbuild-i
前回以来、コンテナに関する勉強会を東京で開催したり、その他の勉強会で登壇したりしていたので、気がつけば3ヵ月も間隔が空いてしまいました。この勉強会ではLinuxコンテナの主要な機能である名前空間のカーネル内の実装のお話や、Docker関連のお話、Linux以外のコンテナ技術に関する話題も色々とお話いただいて、かなり面白い勉強会になりました。勉強会ページで一部の動画を公開していますので、興味のある方はぜひご覧ください。 この間に、この連載で何度も『次のリリースである1.0.8で修正されます』と言ったものの、さっぱりリリースされる気配のなかった1.0.8がようやくリリースされました。セキュリティホールの修正が含まれていますので1.0.7をお使いの方はバージョンアップをしてください。1.0.7から1年近く間隔が空いていますので、変更点が膨大です。変更点はlinuxcontainers.orgのN
In this talk, we will give a technical deep dive into the new YARN shared cache feature (i.e. YARN-1492) and explore the benefits we are currently seeing on our production clusters at Twitter. The YARN shared cache aims to optimize the considerable amount of network bandwidth and storage spent on resource localization in YARN. Some of this is mitigated by the NodeManager localization service, but
この表から解るように、一部の機能を除けばJUnit4の機能は継承されています。 したがって、JUnit4を理解していれば継承された機能をJUnit5に移行することは難しくないでしょう。 最初は多少の混乱はあるかと思いますが、すぐに慣れるレベルかと思います。 逆に、新しくJUnit5からJavaのユニットテストに入るのであれば、JUnit4の制約がないことは良い材料です。 特に、構造化テスト(ネストクラス)の時、JUnit4ではネストクラスをstaticクラスにすることを強いられていました。 これは、テストクラスをテスト毎に作成するという制約があったためです。 この制約がある以上、テストクラスからアウタークラスのインスタンス変数にアクセスできませんでした。 ユニットテストではテスト毎にテストインスタンスを作成することが原則なので、この制約は仕方ないと考えても良いでしょう。 しかし、テストがネ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く