タグ

programmingとProgrammingに関するlarkerのブックマーク (616)

  • やってはいけないJavaプログラミング | ウルシステムズ株式会社

    1.これだけはやってはいけない 製品としてプログラムを記述する場合に「決して」やってはいけないのは、ソフトウエアに対する要求仕様を満たさないこと、つまり製品にバグを残すことです(注1)。仕様としてなにがどこまで定義されているかは、それぞれのプロジェクトによって異なるでしょう。シビアな場面では、メソッドの応答速度や使用メモリ量を定義することもあります。そこまでは掘り下げずに、画面仕様書とファイル仕様書、データベース仕様書だけで、「ボタンAが押されると、ファイルBに記述された設定にしたがってユーザの入力値を演算し、データベースのこのテーブルにこういう行を挿入、画面のこの個所に○○というメッセージを表示する」といった条件のみを定義することもあります。 いずれの場合でも、仕様を最終的にブレークダウンした結果である個々のプログラム、ソースコードが、これを満たしていることが最低限の完成条件となります。

    やってはいけないJavaプログラミング | ウルシステムズ株式会社
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマ

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
  • コードレビューの目的と考え方 - osa_k’s diary

    まえがき コードレビューの目的 大目的 小目的 チェックリスト 優先度高(大きな損失を生む問題・後からの修正が困難な問題) 優先度中 優先度低(システムに大きな影響を与えない問題・後からの修正が容易な問題) レビューを負担にしないために レビューサイズのコントロール 誰がレビューをするか 議論をどうまとめるか 批判と個人攻撃 レビュワー向けアドバイス Code author向けアドバイス 参考文献 まえがき コードレビューの有効性が説かれるようになって久しい。しかし、コードレビューをするべきという観念ばかりが先立ってしまい、何のためにコードレビューをするのか、どのような点をレビューするべきなのかといった、目的や進め方に対する意識が曖昧なケースも数多くあるように思われる[6]。コードレビューの目的を理解せずに惰性でレビューしているだけでは、いずれレビューそのものが形骸化し、単に承認のハンコを

    コードレビューの目的と考え方 - osa_k’s diary
  • これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita

    もうちょっと規約的なものを「JavaでのUT作成基準を整理してみた」にもまとめてみました。 はじめに 去年、ブログの方に「ふつうのユニットテストのための7つのルール」という記事を書いたのですが、思ったより反響がありました。 あの記事で書いたのはあくまで原理・原則で、それを実現するためにはいくつかのテクニックが必要です。 特に、ああいうルールを作って「ユニットテストを書く事」を厳守するようにしても、 適切なテクニックを知らなければメンテが困難だったり、品質に寄与しなかったり、実行性能が悪いゴミが量産される可能性があります。 じゃあ、どうすれば良いかというと「最初からユニットテストが書きやすいように元のコードを設計する」ということです。 そう。まず身に付けるべきは「テストコードの書き方」では無く「テスト対象コード」すなわち「プロダクトコードの書き方」なのです。 また、ここで言ってる「最初から」

    これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita
  • 他人のコードや設計を見て1番これはあり得ないだろと思う実装はありますか?

    回答 (9件中の1件目) とある仕事で関わった、ある問題解決にとても特化された、1ファイル約5万ステップトータル、1関数6000ステップ程度、最深7段にネストされたIf文で構成されたCのコードですかね。これを非C言語環境への移植がミッションでしたが、途中でコードの解読による移植を諦め、ブラックボックス的なテストをしこたま繰り返し、入力と出力の因果関係を調べきった上で、完全に新しいロジックを興したプロジェクトとなりました。 今思えば、プロジェクトオーナーは移植を希望したのではなく、今後のメンテを考えた再構築を最初から狙ってたんでしょうね。 話では複数の人間が、長い年数を五月雨的に関わって...

    他人のコードや設計を見て1番これはあり得ないだろと思う実装はありますか?
  • 「ザクII」を動かすプログラミング教材、20年3月発売 約10万円

    バンダイは9月27日、アニメ「機動戦士ガンダム」の世界観を楽しみながらプログラミングを学べる教材「ZEONIC TECHNICS」(ジオニック テクニクス)を2020年3月に発売すると発表した。価格は9万8890円(税込)。10月11日午後8時から同社の通販サイト「プレミアムバンダイ」などで予約を受け付ける。 ZEONIC TECHNICSは、作中に登場するモビルスーツ「ザクII」をモチーフにしたホビーロボットを組み立てながら、ロボティクスの基礎や、プログラミングの概念を学べるというもの。ジオン軍のモビルスーツを開発、製造していたジオニック社公認の「MS(モビルスーツ)講習キット」という設定だ。 全高は約30センチで、全身17個のサーボモーターや、ジャイロセンサー、対物(距離)センサーを搭載。ザクの象徴ともいえる「モノアイ」を動かしたり、二足歩行したりでき、動きに合わせて効果音も出せる。

    「ザクII」を動かすプログラミング教材、20年3月発売 約10万円
  • Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説

    Perlプログラミング入門 - Perlをインストールから学ぶ Perlゼミでは、Perlのインストールからはじめて、Perlプログラミングの基礎を学べる初心者向けの無料Web講座です。Perlの変数、配列、ハッシュ、if文、for文などの基文法、ファイル入出力、日語対応の検索・置換などの正規表現を使ったテキスト処理を学習できます。

    Perlゼミ|Perlの基礎をインストールからサンプルで丁寧に解説
  • プログラムでフィルタ(平滑化、ノイズ除去)の遅れを無くす

    ローパスフィルタ(プログラム)で遅れの確認 サンプル(計測値)にまずは普通?のローパスフィルタを通してEXCELでシミュレーション(グラフ化)してみます。 LPF = (1 - k) * lastLPF + k * raw; lastLPF = LPF; //lastLPF:前回のLPF値 //raw :今回の計測値 フィルタを言語風に書くとこんな感じでしょうか。「前回の補正値」と「今回の計測値」を重み付け平均している感じです。「k」は定数。(0 ≦ k ≦ 1)

    プログラムでフィルタ(平滑化、ノイズ除去)の遅れを無くす
    larker
    larker 2019/07/04
    ローパスフィルタ
  • ゼロからはじめるGo言語(1) Go言語をはじめよう

    連載は、Googleによって開発されたプログラミング言語「Go言語」をゼロからはじめる方のためのものとなっています。今注目を集めているGo言語について、より楽しく学べる連載です。一回目の今回は、Go言語の紹介から、インストール、簡単なプログラムの実行までの手順を紹介します。 Go言語とは? そもそも、Go言語とは『実行が速くて覚えやすいモダンなプログラミング言語』です。2009年にオープンソースのプロジェクトとして発表されました。その後、着実に人気を伸ばしており、特にこの数年、C言語の置き換えとして、様々な基盤ソフトウェアの開発やWebアプリの開発など、様々な分野で利用されています。 マルチプラットフォーム対応なのも嬉しい点です。Windows/macOS/Linux/Android/iOSと主要OSで動作します。また、コンパイル言語であり動作が高速です。PythonRubyなどのスク

    ゼロからはじめるGo言語(1) Go言語をはじめよう
  • プログラマーを30年間やってきた経験から学んだことまとめ

    プログラマーにとって「どうすればより効率よくプログラムを組み上げられるのか」は常に頭を悩まし続ける問題の1つとなっていますが、その道のエキスパートであるエンジニアのジュリオ・ビアソンさんが30年間ソフトウェア開発に携わってきた経験から学んだことについてブログにまとめています。 Julio Biason .Net 4.0 - Things I Learnt The Hard Way (in 30 Years of Software Development) https://blog.juliobiason.net/thoughts/things-i-learnt-the-hard-way/ ビアソンさんは多数ある「学んだこと」を以下の3つに大きくわけてまとめています。 ◆ソフトウェア開発について ◆チーム・仕事について ◆個人的なことについて これからプログラマーになろうとしている、あるいは

    プログラマーを30年間やってきた経験から学んだことまとめ
  • 2つの座標間の距離を求める - Qiita

    2地点の緯度、経度を指定して、その直線距離を求める必要があったのでメモ書き。 <注意> 稀にソースをコピペしてブログ等に載せてる方がいらっしゃいますが、間違いを修正する事もありますので、せめてリンクくらいは貼って頂けると困る人が減るかと思います。 ヒュベニの公式 一般的に使われているヒュベニの公式から求めるものです。 国土地理院とかにある距離計算もこれで求めてるっぽいです。 2024年現在、国土地理院の計算式はBowring(1996)になっています。 参考:経緯度を用いた2地点間の測地線長、方位角を求める計算 【追記】 [2022/05/12] バグ修正 >@rwanda_go_tanさんバグ報告ありがとうございます。 [2023/11/01] composer化してみました。 [2024/01/04] 国土地理院の距離計算が異なっていたので文修正 > @kkddさんありがとうございま

    2つの座標間の距離を求める - Qiita
  • 一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?

    回答 (5件中の1件目) この質問にかなり先行して2015年、Quora(家)で投げかけられた質問として、 Why do some functional programmers criticize design patterns in OOP languages as a sign of language deficiency, while Monad is also a design pattern? なぜ、関数型プログラマらは、オブジェクト指向(OOP)言語のデザインパターンを、言語の欠陥の象徴だと批判するのでしょうか?モナドもデザインパターンじゃないんですか? があります。...

    一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?
  • 【Android】ViewPagerのページを動的に追加する - Kuwapp's Blog

    ViewPagerのページに表示するデータを最初にセットせずに逐次読み込みたかったので 一番端のページに到達したら新しくデータを追加し新規ページが追加される処理を入れてみた。 流れ ページが端に到達したか確認 ↓ データを追加しAdapterを更新 実装 MainActivity.java public class MainActivity extends FragmentActivity implements OnPageChangeListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初期データ ArrayList<Integer> item

    【Android】ViewPagerのページを動的に追加する - Kuwapp's Blog
    larker
    larker 2019/02/08
    無限スワイプ
  • PHPのハマりポイントのリンク集 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    PHPのハマりポイントのリンク集 - Qiita
  • pythonでのデータ分析時、死ぬほど調べるTipsをまとめておく。 - プロクラシスト

    こんにちは、ほけきよです。 pythonでデータを取り扱っているとき「あれ、これどうやるんだっけ??」 ってなること、ありませんか?僕は10分に1回程度なります。 いや、覚えろと自分でも思うんですが、覚えられないんですよね。100回くらい同じコマンドを調べてたりする。 物覚えが良くないので、ココを見れば絶対大丈夫なようにしておこうと思い、まとめてみました。 jupyterで最初に開くときに読み込むモジュールたち datetime 日付⇔文字列の変換 datetimeの足し算引き算 json dict型⇔json jsonファイルの入出力 datetimeをjsonにする時、エラーが出る pandas ~以外を表すやつ andとor inf弾く リストをdfにサクッと変換 datetimeとして読み込み 読み込み時にcodecのエラーが出る DataFrameのfor文 numpy lins

    pythonでのデータ分析時、死ぬほど調べるTipsをまとめておく。 - プロクラシスト
  • 【Java初心者向け】throwとthrowsの違いとその使い方

    このページではJavaの例外処理として、throwとthrowsについてご紹介しよう。 とても似ているが、それぞれで意味も使い方も違う。 例外処理を行う上で、どちらも知っておこう。 Javaの例外処理には「throw」、「throws」という処理がある。両方ともその名前の通り処理を「投げる」という意味だ。 名前は同じような「throw」、「throws」であるが、内容はだいぶ違う。それぞれの特徴をよく理解して利用していきたい処理だ。 まずは「throw」についてみてみよう。「throw」は例外を意図的に起こして、例外処理を行わせることができる。 例外を意図的に発生させるメリットとしては、以下サンプルプログラムのように、引数の値が望んでいるものでない場合に例外を発生させ、呼び出し元にエラーメッセージを返すことができるなどがある。 サンプルプログラムで処理を確認してみよう。

    【Java初心者向け】throwとthrowsの違いとその使い方
  • Androidのアニメーション(画像複数) - Qiita

    アニメーション効果 1、アニメーションの画像を用意して、drawableに追加 自分は手書きの123、、、9までの数字を用意しました。 2、アニメーションのanimation-listをdrawableに追加(R.drawable.animation) 3、ImageViewとanimationDrawableの初期化 //ImageView 初期化 animationImage = (ImageView)findViewById(R.id.image); //AnimationDrawable 初期化 animationDrawable = (AnimationDrawable)getResources().getDrawable(R.drawable.animation,null); //animationImage 背景 animationImage.setBackground(an

    Androidのアニメーション(画像複数) - Qiita
  • 【Android】Ripple Effectをコードで適応【Material Design】 - あたも技術ブログ

    今回はちょっとした小ネタになります。 Androidでボタンなどを押したときに出てくる波紋状のエフェクトですが、通常なら以下のようにxmlで記述し、backgroundに設定してあげることで実現することができます。 /values/colors.xml <?xml version="1.0" encoding="utf-8"?> <resources> <color name="btn_color">#ffffaab3</color> <color name="btn_highlight_color">#ff4081</color> </resources> /drawable/btn_ripple.xml <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk

    【Android】Ripple Effectをコードで適応【Material Design】 - あたも技術ブログ
  • シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳

    Bash は言わずと知れた歴史あるコマンド言語です。テキストにコマンドの羅列を記述するだけで、手軽にシェルスクリプトとして実行することができます。 シェルスクリプトの実体はシェルコマンドの羅列に過ぎませんが、手続き型プログラミング言語にあるような制御構文も備えています。変数や条件分岐、ループ、関数などです。これらを使えばシェルスクリプトでプログラミングも可能です。 もちろん、現代の一般的なプログラミング言語と比べると機能は限られます。他の言語には見られないシェルスクリプト特有の癖や記法も数多くあり、最近の言語に慣れている人ほど、つまずくポイントが多いです。 しかし、シェルスクリプトだからこその良さもあります。Bash は現在でも多くの OS で標準シェルとして採用されており、普段使っているシェルコマンドを書くだけで動かせる手軽さは何者にも代えがたいです。一度身につけておくと長く使えるお得な

    シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳
  • Material Design度が高まるRipple Effect対応 - Qiita

    概要 Material Design対応を行っているアプリが増えてきたと感じる今日この頃ですが、みなさんRipple Effectの対応は行っていますか。 Ripple EffectはMaterial Designの中でもキーになる表現効果ですが、APIレベル21(Lollipop)以上のOSでないと標準の仕組みでは扱えないため後回しにしているアプリも多いのではないかと思います。 今回は、私が開発に携わっている女性向けファッションアプリ iQON で、Ripple Effect対応を行った際の話を書きたいと思います。 対応方針 Ripple Effect対応を行う上で、まずは以下のような対応方針を定めました。 1. 標準の仕組みを使って対応させる Ripple Effectはバックポートされたサードパーティ製のLibraryがいくつか存在しますが、今回はそのようなLibraryは使わないで

    Material Design度が高まるRipple Effect対応 - Qiita