タグ

Programmingに関するAKIYのブックマーク (150)

  • 桐島、Rubyやめるってよ

    セッションでは「プログラミングへ向き合い方」ということについて発表者なりに考察した結果を述べます。 スゴイ級のプログラマからプログラミングのエモい話を拝聴することはあり、それも非常に興味深いのですが、私のような平凡なプログラマの視点からも少し提案できることがあるのではないかなあと考えている次第です。Read less

    桐島、Rubyやめるってよ
    AKIY
    AKIY 2013/03/18
    プログラミングは楽しむもの。ただし仕事以外で。
  • 凝ったコードは凝っているように見えない - 日々常々

    新しい技術を使ったり凝ったコードを書くとメンテするのが大変。新しく入ってくる人でも分かるように書く必要がある。 この意見に対する上手い切り返しが出来るようになりたい。— Hidari。 (@Hidari0415) 2012年12月27日 "凝ったコード"……はどうだろう。 コードを書くことに凝るのはいい。でも、出来上がったコードが "凝っている" なんて言われるのはよくない。なぜなら "凝っている" と言われるコードは、おそらく "巧妙なコード" になっているから*1。そう言うのは得てして読みづらくて、凝りを解きほぐさないと理解しづらかったりする。そのようなコードは書くべきではない。コードの可読性から来る理解の容易さが全てじゃないが、他の条件がすべて同じ場合、読みやすいコードを書いた方が良いに決まっている*2。 コードのメンテナンスは書いた瞬間から始まっているし、その場しのぎは長生きするも

    AKIY
    AKIY 2012/12/30
    「 "凝っている" と言われる状況は、あれもこれもやりすぎている可能性が高い。」
  • C#で解説する「データ処理の直交化と汎用化」(1/3) - @IT

    稿では、LINQ(Language Integrated Query)の生い立ちについての話をしてみたい。 LINQは、C# 3.0の目玉機能として、2005年夏に発表、2008年に初頭に製品化されたものである。製品化から数えてももう3年が過ぎたわけだが、いまだ誤解の多い機能だろう。LINQの一側面だけを見て、 O/Rマッパーの一種 C#やVB(Visual Basic)のコード中にSQL風のクエリを埋め込める機能 などといわれることもある。これは、一側面が見えているだけいいかもしれない。まれに、 if文やfor文が書ければ、プログラムは書ける C# 3.0/VB 9で何だかいきなり機能が増えすぎてもう付いていけない というような声さえ聞こえてくる。 しかし、そう身構えないでほしい。LINQが目指すものは実のところ単純で、「データ処理の直交化と汎用化」である。この考え方は何もLINQで初

  • 美しいプログラムを書く(脱添字職人編) | Webシステム開発/教育ソリューションのタイムインターメディア

    あらすじ あなたはとある業務用アプリケーションの開発・保守を任されています。 このアプリケーションはC#で記述されており、 とある企業におけるプロジェクト(Project)の管理を主目的としています。 プロジェクトには何名かの社員がアサインされており(AssignedStaffs)、 プロジェクト内には必ずマネージャーが1名存在します(ManagerStaffId)。 大まかなイメージとしては以下のようなコードになっています: public class Staff { public String Id {get; set;} public String Name {get; set;} ... } public class Project { public ArrayList AssignedStaffs {get; set;} public String ManagerStaffId {

    美しいプログラムを書く(脱添字職人編) | Webシステム開発/教育ソリューションのタイムインターメディア
    AKIY
    AKIY 2011/05/08
    恥ずかしながら衝撃を受けた。
  • いろいろな言語のコーディング規約,スタイルガイドのリスト — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー プログラミング言語(C#,VB,PHP,C/C++PythonJavaRubyJavaScript,Objective-C)やHTMLのコーディングスタンダードを集めたリストを発見しました。日語訳があるものはできるかぎり探し出して,括弧のなかに併記して補ってあります。微妙に古いのが混じってるかな。Rubyは日発のコーディング規約がある気がする(まつもとさんの日記を見つけた)。 元記事にPerlのスタイルガイドがなかったんだけど,モダンなPerlスタイルガイドがあったら教えて欲しいです:-)。 PythonにはPEP8というコーディングスタイルガイドがあってよく読まれることは

  • How to work with Node.js App - Hosting - Namecheap.com

    Our Setup Node.js App feature allows for the choosing a specific version of Node.js in order to run the apps using Node.js 6.x, 8.x, 9.x, 10.x, 11.x, 12.x, 14.x, 16.x, 18.x, 19.x and 20.x versions. The currently available Node.js version pool on our Shared servers is available at this page. This function provides ultimate flexibility and features a user-friendly interface that helps you get faster

  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

  • Windows プログラマなら読んでおきたい「Windowsデバッグの極意」 - てっく煮ブログ

    bookちょろちょろと色んなところで紹介されていた Windowsデバッグの極意 ツールを使いこなして、バグハント! を軽く読んでみたが、このWindows 開発をやってる人なら一読したほうがよさそうだ。Windowsデバッグの極意 ツールを使いこなして、バグハント!作者: Mario Hewardt, Daniel Pravat, 長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2009/04/28メディア: 大型前書きの売り文句前書きには次のような逸話が紹介されている。MS のエンジニアが4〜5日に1回クラッシュする問題を数週間かかっても解決できなかったが、gflags の使い方に詳しい人に教えてもらってから再現させると、そこから1時間で原因が分かった。どこの通販番組だよ、と思ってしまったが、1章を読んでみて確かにこのはすごいと思った。オススメのデバッグツール

    AKIY
    AKIY 2009/06/27
    「.NET が前書きでばっさり切り捨てられていたり、」
  • オブジェクト指向における再利用のためのデザインパターン

    オブジェクト指向における再利用のためのデザインパターン
  • 特集 .NET開発者のためのリファクタリング入門(1/4) - @IT

    ちょっとそこのお客さん。ずいぶん浮かない顔をしていますね。え、仕事はプログラマ? そして評価が高く実績もあるプログラムのメンテナンスの仕事を任された? それはおめでとうございます。 え、めでたくない? それはいったいどうしてですか? ほほう。つまり、ユーザー・インターフェイスはすごく格好よいのに、ソース・コードがぐちゃぐちゃで何が何やら分からないと。それなのに、評価の高いソフトだからと機能追加の要求がいくつも発生していると。何が何やら分からないソース・コードを修正して、その要求に対応しなければならないわけですか。それは難儀ですな。すぐにやれといわれても、できるわけがない。 え、それは問題ではない? もう時間がかかることは了承させた? それは結構なことで。それなのに、どうして浮かない顔をなさっているので? ははぁ、時間をかけて書き直したとしても、その書き換えが正しいのか自信が持てないと。どこ

    AKIY
    AKIY 2009/01/24
    「リファクタリングは手に負えない汚いソース・コードに対処することができるテクニック」「リファクタリングは手に負えない汚いソース・コードに対処することができるテクニック」 / リファクタリングカタログ
  • 「デザインパターンの使い方」連載一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「デザインパターンの使い方」連載一覧
  • より良いフォーム作りの参考になるフォームのサンプル&ライブラリ集:phpspot開発日誌

    16 Free Ajax Contact Forms - For A Better User Experience Contact forms are the most common bridges between readers & site owners whether it is a blog or an e-commerce site. より良いフォーム作りの参考になるフォームのサンプル&ライブラリ集。 JavaScript, Ajax等を使い、バリデーションやフォーム入力のしやすさなどについて考えられたフォーム集がまとまってました。 LightForm - Demo - ファンシーなフォームデザインにクールな入力チェック Proto Form - 入力チェック機能や現在位置強調機能 jQuery - Ajax Contact Form (Tutorial & Files) - D

  • 最低でも1つは極めたい、需要の高いWeb開発に関する10の技術:phpspot開発日誌

    10 Most Sought-after Skills in Web Development - NETTUTS 1つは極めたい、需要の高いWeb開発に関する技術、ということでエントリがあがっていました。 MVC等、各種フレームワークの知識 JavaScript、Flashを使ったウィジェット作成の技術 独自のCMSテーマを作成する技術 CMSのカスタマイズやプラグイン作成を行える技術 PSDファイルをXHTMLに変換する技術 JavaScript開発技術JavaScriptプラグインの作成技術 Facebook/Myspaceアプリの作成技術 iPhoneアプリケーション作成技術 Eコマースの導入技術 Flash&ActionScriptの技術でも同じ状況かどうかは分かりませんが、スキルアップのためには何を学べばよいか?という方向性に迷っている方には1つの参考になりそうですね。

  • プログラミングテクニックのまとめ - プログラミング日記

    とりあえず思いついたもののまとめ。 まずは、ベーシックなものから。 変数のスコープをなるべく狭くしろ 他はグローバル変数を使うなとか、モジュール化と界面を意識せよなど。とにかくスコープは重要かつ意外と奥が深い。スコープに関係する機能は、モジュール(パッケージ)、クロージャ、ローカル関数、ローカルクラス、変数の種類、アクセス制御など。 同じロジックのコードを2度以上書くな 他はDRY原則、コピペをするななど。自分の場合、2度書く方がシンプルになる場合、2度書くこともある。特に、ifやswitchなどのロジックの中で同じコードが2度現れる場合、ちょっとしたコードでわざわざ別のところで関数やブロックにまとめて、それを参照するのは面倒。但し3度以上現れる場合は関数などにまとめるケースが多いかも。 汎用コード内で条件分岐コードを減らせ 他はifをポリモーフィズムによりなくせなど。条件分岐は汎用性を損

    プログラミングテクニックのまとめ - プログラミング日記
  • コーディングに役立つ! アルゴリズムの基本 - @IT

    連載ではアルゴリズムとデータ構造を学ぶ、または学び直すことで、プログラミングのスキルを深めていきます。アルゴリズムは学問として取り扱われることが多いですが、この連載では開発の現場に役立つスキルを身に付けることを目的とします。 機械学習/Deep Learningが気になる人も要注目、「アルゴリズム」の基が学べる無料の電子書籍150ページ 人気連載まとめ読み! @IT eBook(29) 人気過去連載を電子書籍化して無料ダウンロード提供する@IT eBookシリーズ。第29弾では「コーディングに役立つ!アルゴリズムの基」10回分を1冊のPDFとしてまとめた。アルゴリズムとは何か? なぜ学ぶべきなのだろうか?

  • (新)APIから知るWindowsの仕組み---目次

    雑誌にせよWebにせよ,最近のWindowsプログラミングの記事のほとんどは .NET向けだ。マイクロソフトも,これまでネイティブ・コードでの開発が主流だったC/C++開発まで, .NETへの移行を促そうとしている。 ではネイティブ・アプリケーション開発用のプログラミング・インタフェースであるWin32 API(Application Programming Interface)の知識は不要になるのかというと,決してそうはならないと筆者は考えている。理由の一つは,OSが動作する仕組みを知ることが,今後も開発者にとって重要であり続けることだ。プロセス管理,メモリー管理,同期化といった概念は,.NETで開発する場合でも必要だ。こうした知識を得るのに一番いいのは,やはりOSのカーネルに近いAPIのレベルで学ぶことである。 将来どうなるかはともかく,現時点では .NET Frameworkの大部分

    (新)APIから知るWindowsの仕組み---目次
  • マージ・ソート : 巨大データのソート法:CodeZine

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな:【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。  プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System

  • OOコード養成ギブス - rants

    Binstock on Software: Perfecting OO's Small Classes and Short Methods The Pragmatic Programmersシリーズの新しい、The ThoughtWorks Anthologyの中に 興味をそそるエッセイがある。Jeff Bayの"Object Calisthenics"だ。 これは良いオブジェクト指向の性質を実証する小さなルーチンを書く方法をマスターするための 詳細にわたるエクササイズだ。オブジェクト指向なルーチンを書く能力を向上させたい開発者がいるなら このエッセイに目を通すことを勧める。ここにBayのアプローチを要約してみよう。 彼は次にあげられる制約のもとに1000行のプログラムを書くことを勧めている。 これらの制約は意図的に過剰な制限となっているが、これは開発者を手続き的なやり方から脱却させるた

    OOコード養成ギブス - rants
  • ricollab Web Tech Blog » REST 入門

    About ricollab "Web Tech Blog" は、株式会社リコー 研究開発部門が運営管理を行っています。 ホーム このブログについて 最近の投稿 はてなダイアリー AtomPub レビュー: その1 実装編 proxy 認証の通し方まとめ ペルソナ/シナリオ法セミナーに参加してきました MogileFS のために MySQL の NDB Cluster を動かす MogileFS を Ruby の mogilefs-client から触ってみた CouchDB について Erlang 分散システム勉強会で紹介してきました MogileFS を Feodra7 on coLinux に yum で入れてみた 仮想化の使い道 RESTful Web サービス読書会 WEB+DB PRESS Vol. 44 私のお気に入り(キーボード:日野原編) RESTアーキテクチャスタイル入

  • ユーザー・インターフェイス開発は分割して小さくする(1/3) - @IT

    ●ラッパー・コントロールを活用したフォーカス時の背景色設定 稿の冒頭で「一目で分かるように、フォーカスのあるコントロールの背景色を(黄色などに)変更してほしい」という要望について記述したが、ここで先ほど作成したラッパー・コントロールであるBaseTextBoxコントロールを使ってこの要望を実現する例を示そう。 まず先ほど作成したBaseTextBoxクラスのコード内容を以下のように書き換える。このコードは単に、フォーカスを受け取ったら背景色を明るい黄色(LightYellow)に変更し、フォーカスを失ったらデフォルトのコントロールの背景色に戻す処理を実装しているだけだ。 Public Class BaseTextBox ReadOnly DefaultFocusedBackColor As Color = Color.LightYellow Public Sub New() Initia