Explore how Wipro is helping companies get back to work safely With WORK.com solutions, we can help you build a resilient future despite the disruption of COVID-19.
今回の日本出張ではいくつかのプロジェクトの状況をみてきた。で、思ったこと。 「COBOL時代のデータ構造を引きずることで、生産性や保守性が落ちている」 フラグだらけのマスター 本物のコードをだすわけにはいかないので、すごく簡略化した例で説明したい。あるシステムを利用できるユーザのマスターテーブルがあるのだけど、そいつには「なんちゃらサービス利用可否フラグ」みたいなのがたくさんついているのね。 この方式の問題は以下の通り。 テスト負荷 フラグがあるということはそれをチェックするif文があるということ。 if文があればテスト件数は最低2件は増える。 入れ子になれば、4件、8件...と増えていく。andやorでも同じ。 コードの冗長性 「あるユーザがサービスAを使えるか」を調べる処理と「あるユーザがサービスBを使えるか」を調べる処理はほぼ同様になることは明らか。 「サービスAを使えるユーザ」を調
http://anond.hatelabo.jp/20080824080254 とりあえずメモ. SIerでお仕事してると、派遣とか常駐とか言う形で、色んな会社に行って、違う会社の人とお仕事するんだけど、「経験年数n年(n>3)です」っていう人達が、恐ろしく使えなくてびっくりすることがしばしば。 そんなもんらしい. そういう方たちは,こういう本の存在さえしらない.=>http://d.hatena.ne.jp/JavaBlack/20070522/p1 でもそういう人達の方が,SIerとしては安上がりで重宝するようだ.お客や上司が気にするのは品質や生産性ではなく価格だけだから.そしてこの主も,おそらく遠からずSIerの存在を疑問に感じ,他の道を模索するようになるんじゃないかな.よほどのコンピューター馬鹿か,或いは本当の馬鹿でなければ,SIerでプログラマを続けていくことなんて無理だろう.*
はてな界隈では、Javaって、あんま人気無いみたいだけど、ちょっと書かせてよ。 SIerでお仕事してると、派遣とか常駐とか言う形で、色んな会社に行って、違う会社の人とお仕事するんだけど、「経験年数n年(n>3)です」っていう人達が、恐ろしく使えなくてびっくりすることがしばしば。 特に、Java 5以降の機能 拡張for構文Enum可変長引数辺りを全く知らなかったり。 って言うか、Javaの極々基本的な知識である equals/hashCodeの実装Serializableの実装Iteratorの実装が全く出来ないんだよね…。 そういうのを知らなくても(出来なくても)業務をこなせちゃう(?)のが、Javaの言語特性だとは思わないけど、こういう人達だらけなんだよね…。 PMが新しい人を採用しようとして、ここら辺の知識を割りと厳し目にテストしたら、候補が10人居たのに全滅で、プロジェクトのスター
オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaやC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速本論へ。 1. クラス内部のデータ表現を変えた場
「現場で使えるソフトウェアテスト Java編」を読んで内容がとても素晴らしいのでメモ。 【1】「現場で使えるソフトウェアテスト Java編」の対象読者は、Java開発者。 内容は、Eclipseの下記のテスト用プラグインで、Javaプログラムのテストや品質を解説している。 【本書で解説するEclipseプラグイン】 ・Checkstyle → コーディング規約チェック ・FindBugs → バグパターン検出 ・JUnit → 単体テストの作成/実行 ・TPTP → プロファイリング(非機能テスト) ・djUnit → カバレッジ計測 ・StepCounter → ソースコード行数測定 上記のプラグインのうち、全てを使いこなしている開発者はどれくらいいるのだろうか? 僕は、Checkstyle・FindBugs・JUnit・djUnitは使った事があるが、TPTPやStepCounterは
メトリクス測定 最近、ありえないほど酷いソースコードの Java による Web システムに遭遇したので、いい機会だしソフトウェアメトリクスを測定してみた。(言うまでもなく、そのプロジェクトは火が噴いて大変な状態だった) ソースコードをわざと難読化しているとしか思えないくらい無意味に複雑な実装で、TDD(テスト駆動開発)などを実践しアジャイル開発に取り組んでいる者としては、あまりの世界観の違いに驚いてしまった。 アーキテクチャ自体が終わってる印象なので、当然の帰結とも捉えられるような気がするが、あまりにも・・・。 とにかく、Eclipse Metrics plugin を使ってメトリクスを計測してみたところ主な結果は以下の通りだった。 10以下が望ましいとされる VG(メソッドのサイクロマチック数)で 50以上が数十箇所、最高値は 90を超えてる MLOC(メソッド単位の行数)の最高値が約
DevSecOpsに最適化されたオールインワンのAppSecプラットフォーム テストするアプリケーションは一つでも数千でも、いつでもどこでも一回の自動スキャンで。 Polarisプラットフォームを見る ソフトウェア脆弱性スナップショット webおよびソフトウェア・アプリケーションによく見られる10の脆弱性に関する3 年間の分析をご覧ください レポートを読む 7年連続でリーダーの1社に位置づけ シノプシスがGartner®にアプリケーション・セキュリティ・テスト・ベンダーのリーダーの1社として評価され続けている理由をご覧ください。 レポートを読む ソフトウェア・サプライチェーンのセキュリティ・リスクの現状 ソフトウェア・サプライチェーンのリスクを軽減する方法を調査する レポートを読むくはこちら
ソースコード/モデル全体の構造分析・影響分析結果を階層構造で表示、システム構造の品質を定量評価するアーキテクチャメトリクス計測に対応 Lattixは、DSM( Dependency Structure Matrix )手法をソフトウェアに応用し、アプリケーションやデータベースに含まれる構成要素を分析し、その依存関係を表形式(マトリックス)に表示します。このマトリックスから、要素間の依存関係やコード修正の影響範囲、循環参照モジュール、階層構造の崩れといったアプリケーションの構造確認や問題点の把握が容易になります。 ソフトウェア品質保証 ソースコード解析 アーキテクチャ分析 ソフトウェア品質向上
想定を超えた反応がありましたので、予定はしていなかった回答編をお送りします。ですが、正確な解答を書いても面白くないので、これをネタに面談をした場合に、自分ならどんなポイントを持って選考するかをまとめてみました。 はじめに このエントリーの質問の意図は「優れたJavaプログラマ」を見つける事ではありません。「最低限のスキルを持った戦力が欲しい」という状況です。したがって、優れた指摘をしてくるのであれば超したことありません。設問について議論が発生するならば、この設問を投げる必要がなかったということです。 Javaを詳しく知っている人からすれば間違いでは?曖昧な質問では?と感じる設問があるのは確かです。しかし、優秀な人をテストしたい訳ではないのです。したがって、正確性とか厳密性については求めません。「だいたいあっている」ならば前提条件である「中堅プログラマの補充」の条件を満たすからです。 中堅プ
JDK 7で追加されるクラス・メソッドを一覧してみようと思いました。標準APIのソースコードはJDKと一緒にインストールされるので(src.zip)、これを展開し、Javadocコメントの@sinceタグに1.7とあるものを抽出すればいいというのが最初の発想です。 JDK 7のソースコードからJavadocコメントの@sinceタグ部分抜粋 新しく導入されたクラスは、クラスのJavadocに記載される@sinceタグに1.7と書かれています。以下は、JDK 7で新規追加されるクラス javax.swing.JLayer の例です。 package javax.swing; :(中略) /** * {@code JLayer} is a universal decorator for Swing components :(中略) * @since 1.7 :(中略) */ public fi
元コードはの118ページ目 変数多いぅぉ・・・try catchやifが値を返せばretValとかいらないのに・・・ という「Javaコードを見るとscalaで書き直したい病」が発病したので(・ω・`) 元のJavaコード↓ @Override public int compare(Player o1,Player o2) { float o1A, o2A; int retVal; if(o1.getId() == o2.getId()) return 0; if(o1.hasRole(Player.Roles.Batter)){ try{ o1A = o1.asBatter().getAverage(); }catch(NotEnoughAtBatsException e) { o1A = 0.0f; } } else o1A = 0.0f; if(o2.hasRole(Player.R
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く