ブックマーク / qiita.com (66)

  • オブジェクト指向と10年戦ってわかったこと - Qiita

    この記事の内容 オブジェクト指向は難しい!わかった気になって実践すると詰みます... ウギャー この記事は10年以上オブジェクト指向と戦った筆者が、通常とは異なるアプローチでオブジェクト指向を解説したものです。 筆者はJavaを使って格的なシステム開発をしたことがありませんが、オブジェクト指向言語として最もポピュラーなJavaをベースにオブジェクト指向について解説させていただきました。 また、この記事の続編にあたります「なぜオブジェクト指向は難しいのか」を更に2年の時を経て執筆させて頂きました!是非こちらも一読していただけると嬉しいです。 オブジェクト指向三大要素の謎 オブジェクト指向三大要素ってありますよね。オブジェクト指向は「カプセル化」「継承」「ポリモーフィズム」の3つの要素で成り立つと言われています。最近では、この三大要素が語られる傾向は薄いようですが、一度は耳にしたことがある

    オブジェクト指向と10年戦ってわかったこと - Qiita
  • プログラミングでよく使う英単語のまとめ【随時更新】

    プログラミングでよく使う英単語のまとめ【随時更新】 随時追加、整理していきます。 名前をつけるときには、名詞、動詞の違い、複数形、過去形などに注意しましょう。 オブジェクト指向では、クラス名は名詞、メソッドは動詞とします。 使ってはいけない言葉 get / set アクセサ (getter / setter) やプロパティによく使われている。 それ以外に使うと混乱を招くのでよくない。 get は軽量な処理と考えるので、中に重い処理は書いてはいけない。 単純な取得/設定以外で使いたくなったら他の言葉を考える。 load, save, commit, store, enable, disable, fetch, register, configure, add, etc... check 意味が広すぎて何をしているかわからない。 できるだけ別の言葉を使う。 具体的に何をしているかに分解して考え

    プログラミングでよく使う英単語のまとめ【随時更新】
  • Google Apps Scriptの日毎のトリガーで時間をもっと細かく設定する - Qiita

    Googleスプレッドシート等のGoogle Apps Scriptを指定した時・分に毎日実行させるための方法をまとめます。 日毎のトリガーに設定できるのは時単位 Googleドライブで使用できるGoogle Apps Scriptは、トリガーを設定することで様々なタイミングで自動的に実行することができますが、毎日6時のような指定をした場合、実行は時間ぴったりではなく6時から7時の間というアバウトなタイミングになってしまいます。 6時ちょうどや6時1分前のような指定はできないのです。 ここで[日タイマー]ではなく[特定の日時]を選択すると分単位まで指定することもできますが、これだと毎日実行させるには1日ごとにトリガーを設定しなければなりません。 解決方法 実はGoogle Apps Scriptにはトリガーを設定する関数があるので、予め設定しておいた日毎のトリガーから、その日の[特定の日時

    Google Apps Scriptの日毎のトリガーで時間をもっと細かく設定する - Qiita
    konomi-miwa
    konomi-miwa 2017/03/22
    “// その日の17時59分にトリガーを設定 function setTrigger() { var triggerDay = new Date(); triggerDay.setHours(17); triggerDay.setMinutes(59); ScriptApp.newTrigger("main").timeBased().at(triggerDay).create(); }”
  • RubyでGmailを使ってメールを送信する - Qiita

    はじめに メールをプログラムから送りたいってよくありますよね そのときいつも問題になるのはSMTPサーバです。 そんなとき、Rubyから天下のGmailを使えば超ミラクル簡単にメールを送信することができます アプリパスワードの取得 Googleの2段階を設定してるとそのままパスワードを使うことはできません。 アプリパスワードというものを発行すればパスワードで認証できるようになります。 こちらのサイトで端末を適当に「Ruby」とかにしといてパスワードを生成してください。 gmail gemのインストール Rubyにはメールクライアントがいくつかありますが、Gmailだけを使うならdcparker/ruby-gmailというgemが便利です。 メール送信だけじゃなく受信とか検索もできます。

    RubyでGmailを使ってメールを送信する - Qiita
  • Ruby mailに添付ファイルをつける - Qiita

    require "mail" mail = Mail.new do from "from@example.co.jp" to "to@example.co.jp" subject "subject text" body File.read("body.txt") end # カレントディレクトリのpicture.jpgを添付 mail.add_file = "./picture.jpg" # カレントディレクトリのpicture.jpgをphoto.jpgとして添付 mail.attachments["photo.jpg"] = File.binread("./picture.jpg") # add_fileはnewのブロック内でも使用可能 mail = Mail.new do add_file "./picture.jpg" end

    Ruby mailに添付ファイルをつける - Qiita
  • Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築 - Qiita

    MacでのVagrantによる仮想環境構築の情報は多くありますが、Windowsマシンで実現するためのTipsを記述します。 1. 環境構築 1-1. 仮想化支援機構の有効化 VirtualBoxでの仮想化のため、PCの「仮想化支援機構(Virtualization Technology)」を有効化しておく。 手順はPCのメーカー・機種ごとに異なるので、Webサイト等で確認すること。 以下はHP ProBook/EliteBookの場合。 PCの電源ON直後、「F10 Setup」と表示されている時点でF10キーを押下 BIOS画面が表示されたら、[システムコンフィグレーション]-[デバイス構成]に遷移 「Virtualization Technology (VTx)」にチェックし、保存 1-2. VirtualBoxのインストール https://www.virtualbox.org/w

    Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築 - Qiita
  • 初心者にお勧めするChefの正しいインストール方法 - Qiita

    どうやってChefをいれる? Gemでインストールする? もちろん! 私もそう思っていました。 世の中のChef環境構築記事はGemばっかり! この記事はよくありません。(私が書いた) http://qiita.com/hamichamp/items/e27a0ecacc33482936c8 Chef Development Kitでインストールしよう。いやするべき! https://downloads.getchef.com/chef-dk ここから各OS毎のChef Development Kitがダウンロードできます。 私はMacで使っていますので、Mac版をインストールしました。 Chefが使うRubyやGemも抱え込んでいるので、お使いの環境に依存しなくなります。 すでに、GemでChefを入れちゃっている方は、かぶるとめんどくさいので、アンインストールしたほうがいいと思います。

    初心者にお勧めするChefの正しいインストール方法 - Qiita
  • 金額とか、カンマ区切りの数値をJSで(正規表現を説明してもらった件)。 - Qiita

    ※下記、「整数で」という前提ですのでご了承くださいませ★ (後日、小数についても考えてみます。) (JavaScript - 「金額とか、カンマ区切りの数値をJSで。」のつづき。小数点も考えてみたんだけどね...。 - Qiita に、検討結果を書いてみました。よろしければご参考まで...。(2015.12.22)) 金額とかで数値を使う場合、受け取ったデータそのままではなく、3桁区切りでカンマ区切りしないとですよね。 数値をカンマ区切りにする場合、JSで正規表現でやろうとするとこうなるそうで。 [該当する数値].toString().replace(/(\d)(?=(\d{3})+$)/g , '$1,');

    金額とか、カンマ区切りの数値をJSで(正規表現を説明してもらった件)。 - Qiita
  • 数値をカンマ区切りにする - Qiita

    数値(もしくは文字列)をカンマ区切りにする関数を書いてください その場で何も見ずに書いてくれみたいな事があったので残しときます 何かの参考になれば。何かの。 あれ、Qiitaの使い方ってこんな感じでもいいのかな… 追記 コメント欄より、一番簡単に実装するなら

    数値をカンマ区切りにする - Qiita
  • Google Apps Scriptでクレジットカード利用明細を毎月自動で奥さんにメール送信する - Qiita

    はじめに 多くのプログラマーにとって、最大の関心事は主に2つです。 いかに良いコードを書くか いかに奥さんのご機嫌を取るか 今回のテーマは「2. いかに奥さんのご機嫌を取るか」という課題をGoogle Apps Scriptで解決するという話です。 夫婦円満の秘訣は、財布を奥さんに預けることである 先人達は、後世の若者たちのために良い知恵を遺してくれました。リスクを共にする夫婦間でお金の管理をクリアーにすることが夫婦円満の秘訣ということです。我が家でも先達の知恵に倣い、お給料を全て奥さんに預けてお小遣い制を導入しています。 しかし、お金の管理を不透明にするやっかいな代物があります。ネットショッピングに欠かせないクレジットカードです。10年ほど前であれば、クレジットカード利用明細が毎月カード会社から郵送されてきたので、奥さんが利用明細を見ることで出費の透明性が担保されていました。しかし、最近

    Google Apps Scriptでクレジットカード利用明細を毎月自動で奥さんにメール送信する - Qiita
  • Cybozu ガルーン API を golang で叩いてみる - Qiita

    golangで叩く 前回は手動で叩いたので、golangで叩く部分を書いてみる golangには良さげなSOAPライブラリが無いので、 XMLの組み立ては手を抜いてtemplateエンジンを使うことに。 リクエストbodyのテンプレートを用意 const SOAPRequest = `<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/

    Cybozu ガルーン API を golang で叩いてみる - Qiita
  • Cybozu ガルーン API を使ってみる - Qiita

    Garoon on cybozu.com: https://(サブドメイン名).cybozu.com/g/index.csp?WSDL パッケージ版 Windows 環境:http://(インストールしたサーバーの IP アドレスまたはホスト名)/scripts/(インストール識別子)/grn.exe?WSDL パッケージ版 Linux 環境:http://(インストールしたサーバーの IP アドレスまたはホスト名)/cgi-bin/(インストール識別子)/grn.cgi?WSDL 等で取得できる golangでsoap WSDLが取得できたので早速golangで叩いてみようとおもい SOAPの実装を探してみたが、なかった。 みんな自分XML組み立ててやれって書いてるような気がする。 自分で叩いてみる ChromeのAdvanced Rest Clinetを使って生でたたいてみることにした

    Cybozu ガルーン API を使ってみる - Qiita
  • 正規表現の基本 - Qiita

    まぁ、基的な正規表現でみんなが利用するのはこの辺かな。 2. Javaで正規表現について javaで、正規表現をプログラミングに取り入れる場合はjava.util.regexを利用する事になる。JavaDocのURLはこれ。javadoc SE6 java.util.regex.Patternクラスには、正規表現についての詳細の説明が記述されている。Javaを利用して正規表現を極めたいと思ったら一度は読むべき。 ちなみに、java.util.regex.Pattenクラスの概要はこんな記述がされている。 つまり、Javadocをしっかり読めば正規表現を理解する近道になる。 コンパイル済みの正規表現です。 正規表現は、文字列として指定し、このクラスのインスタンスにコンパイルする必要があります。結果として得られるパターンは、Matcher オブジェクトを作成するために使用されます。 このオブ

    正規表現の基本 - Qiita
  • Rubyで外部コマンドを実行して結果を受け取る方法あれこれ - Qiita

    Kernel.#system サクッと実行したい場合に便利 実行結果(true, false, nil)が返却される stdin : 渡せない stdout : 取れない stderr : 取れない status : 取れる($? で参照)

    Rubyで外部コマンドを実行して結果を受け取る方法あれこれ - Qiita
  • RubyでSeleniumを使ってスクレイピング - Qiita

    JavaScriptバリバリなページはNokogiriなどのスクレイピングツールで扱うのが難しいですが、Seleniumでブラウザ自動操作すると大体のものはできるようになるので、使い方をまとめておきます。 Javaから使うのと比べて、Rubyバインディングだとずいぶんシンプルで良かったです。 リファレンス 【2015-11-12 追記】上記のリンクは更新停止しているようなのでこちらを見たほうが良さそうです http://www.rubydoc.info/gems/selenium-webdriver/ 使い方 gemをインストールする。

    RubyでSeleniumを使ってスクレイピング - Qiita
  • クラス・モジュールの概念 Ruby - Qiita

    オブジェクトについて学習してきたがここでクラスとモジュールの概念について学ぶ。 クラス はオブジェクトになれる、、、つまりインスタンス化能力を持ち、インスタンスメソッドやクラスメソッドを格納できる。 モジュール はインスタンス化能力は持たないがメソッドを格納できる。 例えば、以下のクラスとモジュールがあるとする。 module Panda def visit_to_Japan "Mr.TonTon" end def panda @panda = "panda" end end class Zoo def the_zoo "There are lots of animal" end end class UenoZoo < Zoo include Panda def monkey @monkey = "monkey" end def elephant @elephant = "elephant

    クラス・モジュールの概念 Ruby - Qiita
  • rubyのクラスやらモジュールがモヤっとしている人へ - Qiita

    どうも。今、やっとこの「モヤッ」が解消されたgogotanakaです。 この記事はrubyrailsはそれなりに書けるけど 実はclassとかmoduleの継承とかインスタンスとかそいう言葉を出されると「モヤッ」となる、 方々のためにこの辺をまとめてみましたよ。 という体裁の自分用の備忘録である。 表記法 よくとかに載っている表記法だけど一応確認。 ThisIsClass#this_is_method これはThisIsClassクラスのインスタンスのメソッドthis_is_methodを指してる ThisIsClass.this_is_method ThisIsClass::this_is_method これはThisIsClassクラスのクラスメソッドthis_is_methodを指している 一回 class Hoge ~ end を忘れよう rubyをいじった事がある方にはおなじ

    rubyのクラスやらモジュールがモヤっとしている人へ - Qiita
  • Rubyで複数の配列を1つの配列に結合するために色々やってみた - Qiita

    Ruby初心者です。 複数の配列を1つの配列に結合しようとしたら意外にできなかったので、同じように困っている人に役立ったら嬉しいです★ 追記:公開早々、たくさんのアドバイス&ご指摘を頂き、修正をいたしました。 コメントに記載されている情報も順次追加していきます! 結合の方法を色々やってみる 1.pushメソッド pushメソッドは、結合と言えば1番に出てくる方法ですね。 挙動としては、 配列の末尾に引数を要素として追加します になります。 ということで、実際にやってみますね! — まずは配列に要素を追加する まずは、結合の前に要素の追加をしてみますね。

    Rubyで複数の配列を1つの配列に結合するために色々やってみた - Qiita
  • JavaScriptコールバックを整理してみた【再入門】 - Qiita

    はじめに JavaScriptのコールバックについて、シンプルに理解できるよう整理してみました。 特に目新しいことはないかと思いますが、何かのお役に立てば幸いです。 目次 コールバック(関数)とは 単純なコールバック関数を実装する より実践的(かもしれない)コールバック関数を実装する おまけ | Promiseに置き換える 終わりに 参考サイト コールバック(関数)とは ひとことで言うと、「引数として渡される関数」です。 他関数の引数として使用し、特定のタイミングで実行させることができます。「あの処理が終わった後に、この関数を実行したい」など。 単純なコールバック関数を実装する 例えばイベント発火時のコールバックは、使い方・動作がイメージしやすいかと思います。 // #triggerをclickしたら、console.log()を実行 $('#trigger').click(functio

    JavaScriptコールバックを整理してみた【再入門】 - Qiita
  • MYSQLをrubyで操作するスクリプト - Qiita

    require 'rubygems' require 'mysql' my = Mysql::new("サーバー名(ipでも可)", "データベース名", "パスワード", "スキーマー名", ポート番号) selectSql = "select id, name from table;" res = my.query(selectSql) res.each_hash do |row| id = row["id"] tel = row["name"] print "id:" + id + "name:" + name end

    MYSQLをrubyで操作するスクリプト - Qiita