ブックマーク / nowokay.hatenablog.com (9)

  • プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな

    プログラマというのは、道具に慣れることが、実力があがることにならないのですよね。だから、勉強せず業務経験だけだとレベルが低いままということになってしまう。 Javaを10年さわり続けて、Strutsを5年さわり続けても、それだけでは、与えられた画面を手際よく作成できるようになるだけで、たとえばStrutsすらよりよく使えるようになるわけではなかったりする。 Javaにしても、「volatileってなんですか?」という問いに、まあ知らないのはしかたないとしても、解説を見ながらですら答えられない可能性がある。 プログラムの反復生産は、プログラミング能力の向上にあまりつながらない。設定や記述に慣れるだけだ。そして、この「慣れ」というのには「難しいからそもそも実装を回避する」というようなものも含まれる。実力の向上は、作業ができるレベルで止まってしまう。 プログラマとしての実力をあげるための勉強が自

    プログラマの実力は経験だけであがらないことがレベル格差につながる - きしだのはてな
    kaipu1224
    kaipu1224 2019/05/13
    SIerにいる身としてはまずプログラミングが好きな人が周りにいてほしいです。
  • Java9、10でStringの+=に副作用があるバグ - きしだのHatena

    Java 9、10でStringの+=にバグがあるということがStack OverFlowで報告されていました。 Why does array[idx++]+="a" increase idx once in Java 8 but twice in Java 9 and 10? - Stack Overflow どういうバグかというと「s[i++] += i + ""」のようなコードが正しく動かないというものです。 次のコードを実行してみます。 public class PlusEqual { public static void main(String[] args) { System.out.print(System.getProperty("java.version")); String[] s = {"aa", "bb"}; int i = 0; s[i++] += i + "";

    Java9、10でStringの+=に副作用があるバグ - きしだのHatena
    kaipu1224
    kaipu1224 2018/06/12
    普通のコード書いてれば出ない不具合だろうなぁ
  • 作って理解するWebフレームワーク - きしだのHatena

    前回、簡単なDIコンテナを作ってみたので、次はこれを使ってWebフレームワークを作ってみたいと思います。 Webサーバーをつくる まず、WebフレームワークなのでHTTPサーバーが必要ですね。なので簡単なものを作ります。 とりあえずブラウザからリクエストを受け取ったら200 OKとHTMLを返すだけのサーバーです。 今回は、そこらのブラウザからアクセスできればいいや、ということで、RFCとかの仕様に準拠することは考えません。 public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSoc = new ServerSocket(8989); for (;;) { Socket s = serverSoc.accept(); new Thread((

    作って理解するWebフレームワーク - きしだのHatena
    kaipu1224
    kaipu1224 2016/04/20
    おもろかった
  • プログラマが勉強すること - きしだのHatena

    今日もプログラマになる勉強する人のところで話をしてきました。 で、また適当にいろいろ書いてました。 http://www.slideshare.net/nowokay/20140228-31742219 今日は特に、この図の内容についてまとめておきます。 ※ このエントリは、主に今日の話を聞いた人を対象としています。前提や補足については省略しています。 まずはプログラミング言語を プログラマというのは、利用者に直接サービスを提供することはできません。コンピュータの上でプログラムを動かして、そのプログラムを使ってもらうことでサービスを提供します。 ※組み込みは前提から外しています。 そのプログラムも、コンピュータで動くものを直接記述することは現実的にできません。 なんらかのプログラミング言語で、プログラムを書くことになります。つまり、プログラマの仕事は直接的にはプログラミング言語をいじくる作

    プログラマが勉強すること - きしだのHatena
    kaipu1224
    kaipu1224 2014/02/28
    社内にプライベートで勉強してる人がどれくらいいるだろうか?
  • Java SE 8 lambdaで変わるプログラミングスタイル - きしだのHatena

    JavaOne2013報告会福岡第二段で話したlambdaの資料に加筆して公開しました。 lambdaの詳細な構文は適当に調べてもらうとして、lambdaでどのようにプログラミングスタイルが変わるかということに重点おきました。 追記「用意されたFuncationalInterface」のリンクはここです。 Java8 Lambdaの文法拡張まとめ - きしだのはてな

    Java SE 8 lambdaで変わるプログラミングスタイル - きしだのHatena
    kaipu1224
    kaipu1224 2013/11/18
    並列処理が楽しみ
  • 今どきのJava Webフレームワークってどうなってるの? - きしだのHatena

    昨日のSeasar2のエントリについたコメントなどで、「とはいえ代わりに何つかうの?」みたいな話が出てたので、とりあえずJava EEのWebフレームワークについて簡単にまとめてみます。 Java SE 8+Java EE 7+lombokで書いていますが、基的なところはJava SE 7+Java EE 6でも大丈夫です。 なので、今どきとは書いてますが、基的には2009年12月のJava EE 6ということで、実はすでに4年近くたってます。 何も考えてない なんも難しいこと考えないなら、やっぱJSPが楽ですよね。 なんでも書けちゃう。 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content=

    今どきのJava Webフレームワークってどうなってるの? - きしだのHatena
    kaipu1224
    kaipu1224 2013/11/08
    JavaのWebはやっぱめんどいよねぇ
  • Java8のOptionalがモナドになったよ! - きしだのHatena

    Java8にはOptionalクラスが導入されたのですが、5月にエントリを書いた時点ではモナドではありませんでした。 Java8でのプログラムの構造を変えるOptional、ただしモナドではない それが、5月末にどうもソースにモナドに必要なメソッドが追加されたらしいということになって、いつ使えるようになるか待っていたら、いつの間にか使えるようになっていました。 Optional (Java Platform SE 8 b101) こちらからダウンロードできます。 JDK8 Early Access Releases ― Project Kenai 他にもいくつか便利メソッドが追加されたおかげで、このようなコードが書けるようになりました。 String str = "abcd"; Optional.ofNullable(str) .map(st -> st.toUpperCase()) .f

    Java8のOptionalがモナドになったよ! - きしだのHatena
    kaipu1224
    kaipu1224 2013/08/05
    Javaがんばれ!
  • Java大好き男に「どのIDEが好き?」と訊ねられたとき、女はどう答えたらいいの? - きしだのはてな

    あ、まず前提として、 貴女がJava大好き男を夢中にさせることが、 はたして貴女を幸福にするかどうか、それはまた別問題だけれど。 とはいえ、Java大好き男たちは玉石混交ながら、 大手SI系の給料高い男なども多く、 したがって、釣り師たる女たちにとっては、 なかなかあなどれない釣り場です。 では、Java大好き男に「どのIDEが好き?」と訊ねられたとき、 貴女は、どう答えれば理想的でしょう? まず最初に、その男がAndroidのようなタイプの携帯アプリと あとはJavaScript、そして(アプリ公開するほどではないけれど)iPhoneアプリが大好きな、 そんなタイプの場合は、 貴女はかれの目を見て、微笑みとともに質問など無視して、こう言いましょう、 「わたしが、いいIDEを作ってあげる♪」 これこそまさに必殺の答えです。 そこでJava大好き男が、えへへ、とやにさがったならば、 貴女は、

    Java大好き男に「どのIDEが好き?」と訊ねられたとき、女はどう答えたらいいの? - きしだのはてな
    kaipu1224
    kaipu1224 2013/05/16
    NetBeans嫌いじゃない
  • おねえさんを組み合わせ爆発から救う:完結編おねえさんは星になった - きしだのHatena

    おねえさんを組み合わせ爆発から救うために、経路をZDDとして表したら、すっきりと経路情報が扱えました。 http://d.hatena.ne.jp/nowokay/20121018#1350528607 あとは、このZDDを効率よく構築できれば、おねえさんを救えそうです。このZDDの構築には、クヌース先生の開発したSimpathアルゴリズムを使うと非常に効率よく構築できます。 前回生成したZDDを見ると、同じノードにまとまっているものがいくつかあることがわかります。特に後半になるとどんどん同じパターンになるものがまとめられていきます。 つまり、この経路問題のZDDを構築するときには、いかに同じパターンになるものをまとめるかが鍵になるということです。 Simpathでは、辺の端だけに注目して、同じパターンになっていればそれ以降のノードを使いまわすという考え方で、ノードをまとめていきます。 つ

    おねえさんを組み合わせ爆発から救う:完結編おねえさんは星になった - きしだのHatena
    kaipu1224
    kaipu1224 2012/10/19
    面白かったです。自力では6x6が限界でした(´・ω・`)
  • 1