「カバレッジ」を含む日記 RSS

はてなキーワード: カバレッジとは

2013-11-10

http://anond.hatelabo.jp/20131109185658

組み込み系の仕事をしている二年目です。

毎日仕事ができなくて凹んでます元増田の2年目が羨ましいです。

研究室では解析アプリケーションを作るのにC,C++,Fortranをいじってました

また趣味サーバの立ち上げやWeb系のJavascriptPHP,Pythonなどもいじっていました。

なんである程度どっちもわかります

で、そんな自分組み込み系の仕事に入ったわけなのですが、

まったく違う。組み込みWebアプリケーション文化が違ったわけです。

ここからはあくまで私の体験ですが…

まず、組み込み系はハード接続図)を読めないと話になりませんでした。

CPUFLASHSRAMFPGACPLDアナログ回路、バッファ、それらをつなぐバス、電源、接点、コネクタスロット、A/D、D/Aなどなど、

これらがどうつながってるか意識しなくてはいけません。SoCとか行っても接続図読めないと意味ありません。

この段階でプリント板の単体検証もしてもらいます

広い話、プリント設計組み込み系の仕事なんですよね。

次に、FPGACPLD設計があります言語VerilogVHDLです。XilinxAltera、Actel等のデバイスに書き込みます

PLDって言うのは言語で書けるハードです。似ているようでCPUと違うので設計にはスキル必要です。

この段階でシミュレーション(modelsim等)をしてもらいます

ここも立派な組み込み系の仕事です。

次にCPUです。言語はC,アセンブラC++です。でもほとんどがCです。デバイスルネサスSHとかです。自分はここで見習いをしてます

CPUに直接入ってくる信号(接点・バス等)もありますが、前述のFPGACPLDから入ってくる信号のほうが多いです。

で、アプリケーションWeb系と何が違うかといえば、ものすごい短期間にいろんなことが起こります

リアルタイム処理っていうのでしょうか。割り込みとか聞いたことありませんか。

要はOSがないので自分でなんでも考えなきゃいけないわけです。

CPU検証はMISRA-Cや専用のカバレッジテストツールで行います

一般的組み込み系の仕事と言われるとここを指すと思います


実際にはユーザーインタフェース設計組み込みに入ります

接点の調整とかLCDパネルとかメンテナンスのツールだとかがないと装置に指令を出せません。

これらにもCPUが入っているわけなので別にコードを書く必要があります組み込み系の仕事です。

さらPLCってのもあります

これは言語でかけるリレー回路です。リレーってのはスイッチです。

スイッチ操作することで接続されている機械操作(電源の入り切りとか)します。

これもCPU,PLD等とは全く違う方式(ラダー)で書きます。十分組み込み仕事です。

最後に組み合わせ評価・試験です。

ユニット試験では通っても、組み合わせ試験で動かないというのは100%あると思います

試験仕事じゃないと思われるでしょうが自分はここも立派な組み込み系の仕事だと思ってます

この段階で確認がとれた後、装置に渡せるようになります

などなど一言組み込み系の仕事といってもいろいろあるわけです。

上の中の2つ3つを仕事に使えるレベルまで持って行くには10年、20年はかかると言われました。

ここで表題の件なのですが、元増田の人は経験8年なので、例えばFPGAを8年やってきてCを書けと言われても大変だと思います

特にその後にWeb系の仕事(これも一言で表すにはいろいろジャンルがあると思いますが)をされてきたとのことなので

いろいろとあったのだと思います。逆にずーとやっていた分野のことを任せるといいかもしれません。

まずどんなことをやってきたのか聞いてみたほうがいいと思います

2013-10-23

http://anond.hatelabo.jp/20131023215018

無い。C言語(++含む)の開発能力で開発競争をしていては、開発が間に合わない。

どう考えてもサービス記述用の言語必要になる。

その言語を介して、おそらくLLVMを通してネイティブへのダイレクトコンパイルになると思われるからOSの壁はわりと超えやすい。

その関係上、OSに要求される機能RTOS程度の機能になるだろうが、RTOSその物は余程の性能でない限りLinuxでもユーザーランドドライバで解決可能。

それに、よく要求されれる機能Linuxパッチ当てても可能。

 

結果論として、OSその物の高機能化勝負にはならない。勝負になるのはOSエミュレーターというか開発環境

より開発しやす環境を整えたほうが勝つ。正確には、自動車が要求する水準までのサービスの開発とテスト高速化して支える技術カバレッジとかね。

OSその物は限られた天才が作るだろうが、その天才の質は日米共に大差は付かない。もしくは買ってきても構わない。

問題は、その下に必要な大量の普通プログラマーと、そのプログラマーが作ったもの天才が書いたものと遜色ない品質まで持ち上げるシステム

 

要するに、日本刀ではなく、火炎放射器マシンガンのように普通兵隊をどこまで強化できるか?という競争になる。

ただしまぁそれは、今の自動車メーカーが考えているようなものではないから、そこの開発装置競争Googleにボロ負けするだろ。

 

SDKを作ろうとしているメーカーは沢山あるが、作れるメーカー殆ど無い。

2013-09-23

さすらい

とあるプロジェクトフロントエンジニアとして手伝っていて、2500行程度のそびえ立つクソなJavaScriptの改修を頼まれていた。

git blame しただけで最低でも10人このJSファイルコードを追加していることがわかった。最初コミット2010年2月ごろだから最初からいるエンジニアの人に話を聞いてみたらこのJS20人近い人がいじっているらしい。

別に関わっている人数とかはどうでもいいんだけど、変数名が謎すぎたり、関数名前と中身の挙動が合っていなかったり、まぁひどいコードで、それを半月ぐらいかけて、個人的な安心感を高めるためにも最初はheadless testとかcapybaraでテストをもりもり書いて、カバレッジを高めて(期間的に100%にはできなかったけど、C0で70%ぐらい)からリファクタリングしていたら最終的にCoofeeScriptに変換して700行ぐらい(JS1000行ぐらいかな)になる予定(追加開発があればまだ増えるかも)。消えた部分は使われていない関数とか無駄な処理とかコメントだったかな。

だいたいなんでこんなことになったかっていうと、経営者がアホな要求ばっかり今までドキュメントを用意していなかったりするからそびえ立つクソコードが生まれたという感じ。CoofeeScriptにしたのもある程度書式を固定したかたから。

同時にGithubPRベースの開発も導入した。俺が入った時には他に3人のフロントエンジニアがいてその人達コードを見ながらもやってた。その人たちはあんまりプログラマとしての能力が高くなかったのでPRベースJSの基礎なんかを教えながらやってた。プロジェクトに入ってからは俺はずっとテスト環境を整備していて、今いるプロジェクトメンバーはまだテストをかける状態じゃないから、PR送られてきたらそのブランチに対してテストを追加したコミットをぶん投げるという感じで進めていた。

もちろん、PRからJenkins連携してテストを走らせるようにしたらフロントエンドチーム、3人ともかなり安心感をもって開発をすることができましたとさ。俺はこのプロジェクトとは今月末でさよならから、俺の仕事ドキュメント書いたりレビューをする文化根付かせて終わりって感じかなー。

あと、JSテストとかViewテストの仕方3年前にくらべるとだいぶ情報が増えてきたし、フロントエンジニア〜な人達テストに身を委ねてみるといいと思った。

あー楽しかった。この世のクソ(ただし金は生んでる)コードをまたひとつ潰せた。

2013-08-06

あなたドコモ経営陣だったとします (※追記あり)

事業環境は厳しいです。ドル箱だったiモードの栄華も今は昔、「ただの土管になりたくない」という強い意志も、いまや具体的戦略のないただの願望になってしまいました。通信インフラコモディティ化していて他キャリアとの差別化はできなくなったどころか、LTEカバレッジでは最も出遅れている始末。他キャリアへの流出が止まらなくなり、キャンペーン甲斐なく何度も純減を繰り返しています。もはや減収減益の構造が定着しつつあるといっていいでしょう。

そこでiPhone導入が取り沙汰されるわけです。

確かに、まだiPhone人気が十分に高い日本では、短期的にはiPhone販売がMNP流出防止&純減ストップの切り札になることはわかっています。それでもiPhone販売に踏み切れない一番の理由は、これまで株主総会でも日経記事でも繰り返し観測気球を出してきたとおり、Appleが課す高い販売シェアノルマ---一説には50%---がドコモ負担になると予測されるからです。

でも、「販売ノルマ率を切り下げてくれればウチも採用しまから、そこは何とかお願いしますよ」というドコモからの数年越しのメッセージに、Appleは反応しませんでした。確かに中国インドアフリカといった途上国の巨大市場に比べれば、ドコモたかだか6000万契約極東のいちメガキャリアしかありません。最後発のドコモに対して契約条件を緩和したら、当然ソフトバンクau最恵国待遇を要求するでしょう。Appleからすれば、各社に販売ノルマを緩和したらトータルではツーペイになってしまうし、利益率を緩和したら、まだiPhoneが高い競争力を持っている地域市場を自らスポイルすることになってしまますAppleドコモ妥協してやる意味は今のところないのです。

からドコモにはもう後がなくなってしまいました。とにかくiPhoneの販売ノルマクリアできる体制を整え、iPhone販売契約に踏み切るのが喫緊課題です。そのためはどうすればいいか? iPhone豊富選択肢のなかのワンオブゼムにしてはだめですよね。実際に数を捌かなければ、Appleが課すペナルティで今度は営業利益率がガタ落ちしまから。となれば、今は1シーズンに10機種も出しているAndroidスマートフォンの投入ラインナップをせいぜい3〜4機種程度に絞り、それらとは別格の位置づけでiPhoneを売りまくらなければいけなくなりますソフトバンクKDDIは実際そうしています)。「業績回復のためにやれるべきことは全部やっている」と株主に説明するためのステップとして、これはもう必須の条件でしょう。

さて、では実際にラインナップのどこを整理して、誰にiPhoneを売ってゆくのか。ドコモ既存ユーザーのうち、特に重視すべき移行見込層は、1)フィーチャーフォンユーザーと、2)Androidに乗り替えたものの、その機能操作性に不満があるユーザー…ということになるでしょう。1)はかつてブランドだった「ドコモのN」や「ドコモのP」などを長年ご愛顧戴いてきた層。2)は、Android機種のなかでも差別化に失敗しているコモディティ的端末、すなわち、N・P・F・SHのユーザー。これらのユーザーを「わかりやすいですよ」「使いやすいですよ」とiPhoneに誘導してゆくためには、これらのセカンドラインメーカーが作るスマートフォンは、むしろ選択肢から消えていてくれたほうがいいですよね。

こうして事前にキャリア内の浮遊層を作っておき、適切なタイミングiPhone移行キャンペーンを投下すれば、そこは衰えたりとはい国内最大の契約者数を誇るキャリアドコモですから、その数字的なインパクトはかなり大きいはずです。


から今回話題になった「ツートップ戦略」は、巷間言われているように、スター機種のXperiaGalaxyを重点的に売り込むための、攻めの施策というだけではありません。それは、来たるべきiPhone時代を見据え、長年ドコモ蜜月関係にあったメーカーたちと縁切りすることを意図した、非情身辺整理の作業でもあります。今般報道されているNECカシオパナソニックモバイルスマートフォン撤退は、ドコモの販売奨励戦略の「失敗」ではなく、はじめからの狙い通りの「成功」だったというわけです。



【追記】山本一郎さんのコメントへの御礼

ネット世界では投資家ゲーム開発者ラノベ作家企業探偵ベルロックメディアシニアマネージャーなどの華麗な経歴で知られる山本一郎さんという人に拙文へのリンク貼っていただけたようで、恐縮至極、汗顔の至りです。

【悲報】ドコモ関連で「いかにも」な与太記事が増田に掲載され局地的に話題に(山本 一郎) - 個人 - Yahoo!ニュース

空手形や取らぬ狸皮の動機でNECを真っ二つにするとはちょっと思いづらいんですよね。


はい、もし上の文章からそんな経緯を想像する人がいたら、企業経営には向いていないでしょうね。山本一郎さんがドコモ経営陣だったとしても、当然、Appleと今期以降のiPhone販売契約について話の筋道をつけてからの「ツートップ戦略」で年末大水計に打って出るのではないでしょうか? 見込みベースで話を進めて裏目に出たら、ツートップ転じてオンリーツー状態になってしまますのでね。もしここまでの話がすべて机上の空論なら、それはすなわち、「ドコモは次の機種サイクルから事実上ソニーサムスンだけでスマートフォン市場を闘い続けることを選んだ」という話になるわけです。

しかし、本邦のモバイル業界フラッグキャリア格ともいえるドコモが、たった2メーカー×1〜2機種の最新スマートフォンラインナップで次の秋冬商戦に挑むなんてことがあるでしょうか? この会社は今年に入ってからの一連の動きのなかで、どんなコストを払い、何を仕込んでいるのでしょうか? 山本さんが並べているリンクの数々も、ツートップ戦略が「単体では」純増の切り札として奏効しなかったことを示していますが、それは本当は「切り札」ではなく、さらなる戦略転換のためのひとつの手段だったのではないでしょうか? 予定では2013年中に市場投入され、サムスンとの密な提携関係ならびにモバイルOS第三極戦略の礎となるはずだったTizen派筆頭の永田氏をいきなり傍流に追いやってしまったことには、果たしてどんな意味があるのでしょうか? 

さまざまな状況証拠から考えて、今のドコモがその機種戦略プラットフォーム戦略の中に、何か大きなパズルピースがはまるための「スペース」を作っていることを全否定できる人はそういないのではないでしょうか。そして、その巨大な空白に当てはまる商品は、現状では1つしかありません。

もう、おわかりですね

2011-02-10

http://anond.hatelabo.jp/20110209221517

Cの場合は使わないからだろ。関数内に関数

というか、Cの場合関数粒度を気にすることが多いからね。

再帰関数 > ループでかけ

たいな感じで、関数コールを嫌う文化からなぁ突き詰めると。

そういう事をしようと思わない。別な書き方をするとかじゃなかろうか?

 

いちおう、C++ならクラス内にクラスは書けるから似たような事はできる。

 

C/C++文化的に速度とメモリ重要視する言語からあんまりね、そう言うのは主流じゃないと思う。

class A{

private:

 int A:

public:

 void set_A(int &a){

  A=a;

 }

}

たいなことも・・・あまり、おすすめできないし・・・。論理的には美しいんだけど・・・いろいろ弊害もあると考えるのがC/C++

ましていわんや、関数内。

※一番痛いのは、設定関数が1箇所なので、動作変更がすぐできる>>大規模システムではコードカバレッジがあるので、

根元の関数の挙動を大きく変えられたら、上位のクラスの莫大なテストやり直しだから、1箇所変更で全箇所変わるのはデメリットw。上位で修正が基本。

というか、やっちゃだめwww。

たとえば、intをdoubleにとかなら、それもう別物だから、上位も変更でしょ。普通・・・。とか。

 

あと#define関数デバッガーでおえないので、なるべくC++コンパイラ通してinlineで書いてぇぇぇぇとか。色々。むしろ#defineで複雑なことしないで

2010-07-09

ビジネスロジックをストアードプロシージャで実装してはいけない

ストアードプロシージャでビジネスロジックを実装するメリットを認めつつも、以下の点からビジネスロジッククライアント言語で実装できる場合はできるだけそうした方が良いという結論に達した。

ストアードプロシージャと単体テストは食い合わせが悪い

RDBMSによっては無料あるいは有料でソースレベルデバッガを使用できる場合もあるが、通常はクライアント言語デバッグ機能を使う方がはるかに便利だ。何か問題があったときに、どこが問題なのかを見つけることがクライアント言語記述した場合よりもはるかに時間がかかる。

また、Unit Testing Framework(xUnit)も使用できない場合がほとんどだ。

さらに、カバレッジツールは大抵の場合使えないだろう。

ストアードプロシージャは、たいていの場合、静的解析が行えない

ストアードプロシージャ用の静的解析ツールの存在を知らない。巡回的複雑度を知りようにも知るすべはないのだ。それが行えるツールを知らないだけかもしれないが。

ストアードプロシージャは、バージョン管理されたコードとの整合性に問題がある

仮にストアードプロシージャの変更を全てAlter xx等で構成されたSQLスクリプトファイル管理し、それをバージョン管理システムに含めたとしても(というか、最低そうすべきなんだが)、あるリビジョンコード一式に対応するデータベーススキーマを取り出すのは難しいか面倒だ。

ではトリガーはどうなのだ

リガーでビジネスロジックを実装する場合も、上記問題点が全てあてはまる。

さらにトリガーの場合は、どのような場合にどのような処理が実行されるのかを俯瞰することが難しくなるという問題もある。

では一体いつストアードプログラムを使うのか

一つは、Oracleで言うところのストアードファンクション、つまりSELECT等のDML内で使用する関数で、そうした方がパフォーマンス的にも良い場合

もう一つは、複数クライアント言語で同一データベースを使用することが決定済みな場合

2008-02-19

http://anond.hatelabo.jp/20080219092305

上司の資質が激しく問われているな。

今日モジュールXのテストデータを作ってください。11時までにテスト項目としかるべき結果のリストアップカバレッジをチェック後、Y主任からレビューを受けてください。主任には私から話をしておきます。午後からテストデータを作成してください。明日朝市からモジュールテストに入ります。

こんな感じ?

2007-11-14

それは仕様・・・が違ってました

いま結合試験だ。

仕様書が間違ってたり曖昧だったりする。

時間がないから力技でテストをした。

上のPMに報告せねばならない。

どうやったら説得力のある報告ができるか?

いまさら無理だろ。

密度、カバレッジ等を持ち出しても仕様が違うのは論外。

少しはプロセス改善の目を持ってほしい。

管理する側はプロセスより結果を見るほうが楽だろうけどさ。

(※大手SI屋の中の人より)

ログイン ユーザー登録
ようこそ ゲスト さん