タグ

ブックマーク / qiita.com/tadsan (12)

  • このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita

    この記事ではPackagistで公開可能な形式のPHPのライブラリ(Composerパッケージ)を公開するための道具立てを紹介します。あと、現代のPHPerはツールを組み合せてさくっと開発しているんだという自慢です。 タイトルは「この TypeScript が Hello, world! のくせに慎重すぎる」と「この勇者が俺TUEEEくせに慎重すぎる」のぱくr… パロディです。 テンプレートエンジンのくせに型安全なんてなまいきな。 この記事の読みかた せっかくなので手を動かしながら自分でComposerパッケージを作成してみましょう。 今回の題材は「Hello worldを出力する」という革新的機能を提供する、とても画期的な実用ライブラリです。 記事名通り「慎重すぎる」ので、細かく刻んでGitで経過を保存しながら作業を進めていましょう。なんかよくわからない状態になったらgit reset

    このPHPがテンプレートエンジンのくせに慎重すぎる (前篇) - Qiita
    tuki0918
    tuki0918 2020/01/29
  • ApacheライセンスのソースコードをGitHubにあげるまで - Qiita

    も杓子もMIT License、みたいな感じなので… 自作ソースコードに、MITライセンスを適用する3つのやり方 | オープンソース・ライセンスの談話室 MITライセンスのソースコードをGithubにあげるまで CC0ライセンスのソースコードをGitHubにあげるまで Apacheライセンスってなんだ Apache Software Foundation1が提供する製品のソフトウェアライセンスです。概ねBSDライセンスと同じ(つまりMITライセンスとも同じ)なのですが、さらに許諾の範囲が明確です。 Apache License, Version 2.0 日語訳 licenses/Apache_License_2.0 あんまり長くないので、全文読んだ方が良いと思ひます。まあMITライセンスの数倍長いけど。 MITライセンスなどの短いライセンスとの差は以下のようになるかと思ひます。 用語の

    ApacheライセンスのソースコードをGitHubにあげるまで - Qiita
    tuki0918
    tuki0918 2020/01/29
  • P++: 銀河に平和をもたらすための奇策と決着 - Qiita

    PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる というキャッチーな紹介をするP++: 静的型付けをめざすPHPという記事がそれなりに話題になり、このニュースは目覚しく革新的な内容で、多くのひとの目を引き付けました。 これは早まった理解であり、ほとんど誤報と言ってもいい内容でした。2019年8月15日には提案者人も、少くとも「P++」の計画を短期的に実現するととは非現実的であり時期尚早であることを認めています。 この記事では、PHP開発の現状、なぜ野心的なP++計画が提案され、事実上撤回されたかの経緯について紹介します。 [中立性のための表示] この記事の著者@tadsanはPHPの静的解析を強く推進する立場です。 PHPゆるふわCI入門 PHP型検査・夢と理想と現実) 三行で要約 PHPはバージョンを経るごとに「歴史的経緯」による負債が削ぎ落されてきた

    P++: 銀河に平和をもたらすための奇策と決着 - Qiita
    tuki0918
    tuki0918 2019/08/14
    ALT PHP
  • ライセンスの選択を恐れる必要はありません - Qiita

    この記事はCC BY 3.0に基いて公開されてゐるWebサイトChoosing an OSS license doesn’t need to be scary - ChooseALicense.comのコンテンツ各ページを翻訳し、単一記事として再構成、訳者による補足を追加したものです。 2017年5月9日に開示されたコミュニティガイドラインに伴って、記事の翻訳部分につきましては削除いたしました。 (この記事が削除または非公開化されない限り、編集履歴からお読みいただくことは可能です。) (訳註: この「はじめに」及び末尾の「訳者による補足」の章は原文にはなく、翻訳者(@tadsan)によるものです。記事の著作権表示及び元Webサイトの利用規約、免責事項、そしてこの記事についての訳者の見解について記します) (この記事の一部または全て ——ただしコメント欄は含まれない—— はCC BY-SA

    ライセンスの選択を恐れる必要はありません - Qiita
    tuki0918
    tuki0918 2017/09/03
  • 初心者を戒めるPHP - Qiita

    この記事は何か 挑発的な文言になってる箇所はあるものの、内容としてはそれなりにまじめに書いたつもり。むしゃむしゃしてやった。いまでは反芻してゐる。 PHPDocは必ず書け あらゆる再利用可能な手続きは、他人が容易に応用できるように型が明示的でなければいけない。メンバー全員が実装コード全てを把握できるものならそれが理想だけれど、残念ながら時間は有限だ。ヘッダだけを読んでメソッドの仕様が理解でき、またはコードを読む助けになるようなコメントが良い。 有名な事実を紹介すると、多くのコードは数か月(早ければ数日!)も経てば、他人が書いたコードに感じられるほど理解できなくなることがしばしばある。もちろん設計の練度にもよらうが、設計判断について注意を要した点などをコメントに残しておくことで、ひいては未来の自分の役に立てることができる。 お前の先輩は「PHPには型がない」などと知ったかぶって意味不明1なこ

    初心者を戒めるPHP - Qiita
    tuki0918
    tuki0918 2016/06/16
  • PHP 5.6と7の新機能を使った画期的バリデータの実装 - Qiita

    以前、private/protectedなプロパティを外部から読み込み可能にするを書いたとき、記事のコメントにて「コレクション(配列)内の要素の型を検証したいよー」「でもそうすると全要素を検証しなくちゃいけないから実行時のパフォーマンスの問題があるよね」って話をしました。 気付いてしまった PHP: 関数の引数 - Manualを読んでた私は気付いてしまったのです。PHP 5.6で実装された機能を巧みに利用すればバリデータが実装可能なことに。 ……そうです。可変長引数です。 PHPの可変長引数とは PHP 5.6で追加された可変長引数は、以前の文法に...を追加することで0個以上の値をまとめて受け取れるようにしたものです。 f("a") // => // string(1) "a" // array(0) { // } f("a", "b") // => // string(1) "a"

    PHP 5.6と7の新機能を使った画期的バリデータの実装 - Qiita
    tuki0918
    tuki0918 2016/03/01
  • シェル、ターミナル、コンソール、コマンドライン - Qiita

    いろいろ混同されがちなやつ。筆者もまったく混乱してないとは主張しがたい。 この記事は初版を2014年1月に書きはじめ、いまのバージョンを2015年4月頃に書いてたけど、擬似端末/仮想コンソールあたりの理解が怪しいのでお蔵入りになってました。ので、そのあたりの説明は微妙。 コマンドライン(command-line) 文字でコマンドを打ち込んで操作するインターフェイスのこと。 シェル(shell) 人間様がOSを操作するためのインターフェイスのこと。貝のようにOSの核(カーネル)を守ってるからシェルと呼ぶんだって噂。 大別すると コマンドラインシェル と グラフィカルシェル がある。 Unixシェル UNIXやUNIX-likeなOSで利用されるコマンドラインシェル。現代ではGNU BashやZ Shellなどが知られる。 Shellにもいくつかの系統があるが、主にBシェル(Bourne Sh

    シェル、ターミナル、コンソール、コマンドライン - Qiita
    tuki0918
    tuki0918 2015/09/24
  • PHPのlist()はタプル展開のための機能 - Qiita

    PHPの配列(array) PHPの配列は、その名前に反して、実に多様な機能を併せ持ったデータ型です。 PHP の配列は、実際には順番付けられたマップです。マップは型の一種で、 値をキーに関連付けます。 この型は、さまざまな使い道にあわせて最適化されます。 配列としてだけでなく、リスト (ベクター)、 ハッシュテーブル (マップの実装の一つ)、辞書、コレクション、スタック、 キュー等として使用することが可能です。 PHP の配列には他の PHP 配列を値として保持することができるため、 非常に簡単にツリー構造を表現することが可能です。 php.net, PHP: 配列 - Manual, 2014年8月12日閲覧. 引用は@tadsanによる. 以上のように、数多くのデータ構造の機能を兼ねて持ちます。大クラス主義を標榜するRubyのArrayよりも、さらに大ざっぱです。 これだけの機能を持

    PHPのlist()はタプル展開のための機能 - Qiita
    tuki0918
    tuki0918 2015/09/23
  • モダンPHPアンチパターン - Qiita

    アンチパターンなので、見出しの内容はすべてバッドノウハウです。 前に書いたやつ PHPのモダンな開発環境を紹介する - Qiita PHP - Functoolsを作った - Qiita PHPのlist()はタプル展開のための機能 - Qiita 関係ないけどこれも: シェル、ターミナル、コンソール、コマンドライン 追記: 文中でとりあげた「怖い話」について、ちゃんと説明しました PHP - namespaceとBOMに何の関係があるのさ - Qiita ファイルの最後に?>を書く PHPコードは<?phpで始まり?>で締める。それがPHPの常識(キリッ ……そんなことはもう綺麗さっぱり忘れよう。PHPはテンプレートエンジンではあるが、Webアプリケーションを書く上では、もはやテンプレートエンジンとしての機能は求められなくなりつつある。 不要な?>を書いてはいけない理由は明確で、<?p

    モダンPHPアンチパターン - Qiita
    tuki0918
    tuki0918 2015/09/23
    テストコードが無い(マジごめん
  • PHPのin_arrayは罠が多いので注意喚起が必要 - Qiita

    最初に結論 in_arrayには第三引数trueを指定しろ。絶対にだ。 はじめに in_arrayについては、はじめにPHP: in_array - Manualをよく読んでおいてほしい。 この記事に書いたコード断片は、どうか読むだけではなく自分で手を動かして確認してほしい。 PHPで短いコードを動かすのはPsySHを利用すると、とても捗る。ローカルに動作環境がなければ、Ideone.comなどのオンラインサービスを利用しても差支ない。 static $fruits = ["apple", "orange", "banana"]; in_array("apple", $fruits); // => true in_array("mikan", $fruits); // => false これがin_arrayのふつうの使ひかただ。 Webアプリケーションでの実例 では、次のような例を見てみ

    PHPのin_arrayは罠が多いので注意喚起が必要 - Qiita
    tuki0918
    tuki0918 2015/03/21
  • DTを蝕む「Ruby脳」の恐怖 - Qiita

    まへがき 無意識だったわー このコード無意識で書いてたわー ——Zonu.EXE (24歳・中二病) 文 このコードの == メソッドの定義を読んで違和感がなければRuby脳。 class Hoge attr_accessor :foo, :bar def initialize (arg) @foo = arg[:foo] @bar = arg[:bar] end def == (other) [self.foo, self.bar] == [other.foo, other.bar] end end fizz = Hoge.new(foo: "Foo", bar: "Bar") bazz = Hoge.new(foo: "Foo", bar: "Bar") p fizz == bazz # => true 補足 タイトルで煽ってますが、このコードが問題視されることは、おそらく多くありま

    DTを蝕む「Ruby脳」の恐怖 - Qiita
  • Rubyのコードを解析する…? - Qiita

    はいこんにちはこんにちは。プログラミング初心者のZonu.EXEです。 今日はRuby Advent Calendar 2012の20日めです…? ちょっと前まで自宅警備員で、一個月ほど前からアルバイトでるびーおんれーるずを書くお仕事に就いたのですが、Ruby基礎力が低すぎて困ることが多々あります。 そんなわけで、Rubyをきちんと学ぶために基礎の基礎から調べてみましょか、みたいなテンションで書いてました。 ほんとは字句解析だけでがっつりと書きたかったんですけれど、ねたを集める時間がなかったので枝葉末節がひどいです。 タイトルと内容が合ってない気もするけど気にするな! 全然毛色が違ってるねたが混ざってても気にするな! オムニバス! はじめに プログラミング言語で書かれたソースコードを読んで何らかの処理を行ふソフトウェアを「処理系」と呼びます。よくわかんないですけど、何らかの処理をしてくれる

    Rubyのコードを解析する…? - Qiita
  • 1