「技術的負債」を問いなおす
いわゆる「技術的負債」について、巷間出回っている言説は、(1)歴史的(2)比喩的(3)実践的に不十分な認識にもとづいている。そのため、当初その用語が新鮮なものとして導入したはずの認識利得が毀損され、いまや不毛な水掛け論を間歇的に惹起するのに使用されるばかりだ。本トークでは、当該用語の本義に立ち返り、さらに適切な説明を提供することで、よりよい言説の基盤を提供する。
#!/usr/bin/env ruby -w | |
def foo | |
puts "foo" | |
end | |
def foo | |
puts "redefined" | |
end |
ssh-dss AAAAB3NzaC1kc3MAAACBALKU5LjbamBINmO3KZzxuYNi+C8Opwv5BJUAAUdFi8sZOTaYGsxLsds4fbtVuIt1DuBos1e+WC5imk5d57ExFhzsseMxdqtNTLR52rGwJViFNqmlGfrU2SGiUYXEg+UMCJx3CdEG1exmoexdmmPl+b3OIeeEARuhg325rVurOlRLAAAAFQC/20nsxM8DbBvP/TfCD2wSbDUqDQAAAIAE5VYx2KxQ1kqpB7Zpxslgc45e/lxtrzUTJA2+shQFdaqkY44uNrWGtdvlir0gawyNqn7APZLVnJyH1Ev7jnHI+Stvp9o8cV5ssTQqfsO5769upxnv5cFfv4/lYc8nEht3OgEp8k5zZ0twIYMV2vuVtZYjOGfezlL+1WayjEkvEQAAAIEAo3elqUk/3L5gr8HIutDPz3zwlyz5Djb6m7xGYro4b/EXV599X9Tn0LozrGITHdl62UZmppNDn3iAfLa+oNfr2CmEDGTy0FBJsNVevJFH0B0lHlE4HcCNWvjDZa9Y5bPMTt0BEBrQTXZEk2Sth7ocstpfv7yGanaUyeMKC8aYh3c= [email protected] |
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
package Debug; | |
sub new { | |
my ($class, $flag) = @_; | |
bless \$flag, $class; |
function! GitBrowseRemoteAtLine() | |
ruby << EOF | |
`git browse-remote -L#{VIM::Window.current.cursor.first} -- #{VIM::Buffer.current.name}` | |
EOF | |
endfunction | |
:command! GitBrowseRemoteAtLine :call GitBrowseRemoteAtLine() | |
" vim-automatic | |
let g:automatic_config = [ | |
\ { | |
\ "match" : { | |
\ "filetype" : "help", | |
\ "buftype" : "help", | |
\ }, | |
\ "set" : { | |
\ "height" : "50%", | |
\ "move" : "bottom", |
[program:program_name] | |
command = plackup ... | |
process_name = %(program_name)s | |
user = user_name | |
environment = HOME=/home/user_name | |
directory = /app/program_name | |
stdout_logfile = /var/log/supervisor/%(program_name)s.log | |
stdout_logfile_maxbytes = 50MB |
<?xml version="1.0"?> | |
<root> | |
<list> | |
<item> | |
<name>LeaveInsMode with EISUU(Terminal)</name> | |
<identifier>private.app_terminal_esc_with_eisuu</identifier> | |
<only>TERMINAL</only> | |
<autogen>--KeyToKey-- KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_EISUU, KeyCode::BRACKET_LEFT, VK_CONTROL</autogen> | |
</item> | |
</list> |
Webサービスは、いちどリリースしてしまえばそれで終わりということはありません。むしろ、リリースしてからが勝負です。ユーザからのフィードバック、市場環境の変化などに対応し、常に変化し続ける必要があります。それは避けようのない、Webサービスの宿命です。
先日、PHPのバージョン5.5系がリリースされ、5.3系のEnd of Lifeが発表されました。OSSによる開発は、ソフトウェアへの初期投資という意味においては無料ですが、その運用に関しては度重なるアップデートにきちんと追従していく必要があるという意味では、それなりのコストがかかります。
Webサービス開発においては、先に挙げた外部環境からのフィードバックや変化に加えて、技術環境の変化にも対応していく必要があるということです。
本トークでは、技術環境の変化、その中でもアプリケーションが利用するPHPのバージョンアップをいかに行うかについて、また、ただ一度のみならず継続的に行えるようにするにはどうするかについて、実例を元にその手法を紹介します。
<?php | |
if ("") { | |
echo "んなわけねーじゃん"; | |
} else { | |
echo "空文字はFALSEとして評価される"; | |
} | |
if ("" == FALSE) { | |
echo "空文字はFALSEとして評価される"; |