作者HuangJC (吹笛牧童)
看板PHP
标题Re: [心得] 学了一阵子 PHP 之後
时间Wed Jul 23 22:32:41 2008
: 记得不久前,我必需写一个 DOS 下的批次档
: 当时因为档名处理的问题搞不定
: 推 aquarianboy :php也可以写成可执行的shell script.. :) 07/23 21:33
: → uftea :帮楼上注解.. php-cli 07/23 21:38
:
: Yes,我有装
: 所以才觉得干麻写批次档要改用 Perl
: → starjou :在 Linux 下写了两年多的全职 PHP, 一点也不会 perl 07/23 21:51
:
: 看来答案真的只有一个
: 就是惯性
讲解一下状况好了
当时我是写了一个 C 的模组,但是使用的 VC 版本和其他同事不同
在我们软体公司,是把 build machine 和 RD 电脑分开的
前公司没这样做,结果 RD 电脑中毒,看是 source code 消失或把病毒出货都很好笑
所以开发流程当然是 RD 缴出程式,build machine 独立 compile
因为 build machine 上整个架好的是 VC6.0,批次档都完备了
它独立的程度是可以远端下个专案名,就一直跑完到把 package 包好丢在子目录里
这样的东西,我无法要求其他同事
"你就打开整合环境,帮我 LOAD 程式进来,选 XXX 选项再 build 就好了"
当然要用命令列 compiler,且 compiler option 一定要全自动汇入
微软猜也知道我有这需求,都有准备
但是 build machine 随时会重架,并且架在不同的子目录架构上
所以我的批次档要能依环境变化,依目前子目录不同而自行调整
C:/path/subpath/*.prj => C:/path/exe/*.exe
像这样,稍微有点变化,我实在很想用 strpos 去找出 '/' ,去兜子目录名和档名
当我提出用 PHP 现学现卖时,同事阻止我
那是因为 PHP 还需要再安装
而 build machine 是要多单纯有多单纯
我看他们恨不得把 Win XP 缩小到命令列版本,只装 compiler 而已咧 :P
说到缩小 OS,量身订做,只依需求灌有限的软体
老实说,Linux 一直是这样
可是我们那是 Win OS 下的专案 :P
话说回来,我好像看过 Cross Compiler XD
这东西架在 Linux 下,但 Compile 出来的程式是给 Win OS 跑的
那就可以
不过我们当然不会去用它,因为相容性有一堆问题..
写程式都焦头烂额了,没人想去帮别人测相容性..
;;
我一向称 C++ 为 C
虽然有的同事很计较说,C++ 不一样
物件导向语法里
I->F();
在非物件导向语言,可以这样写
F(&I); //第一个参数,就是 this
所以我早就学物件导向观念(大概 windows 3.0,甚至好像看过 2.0 吧..)
但很晚才学 C++
但好的语言的确对可读性大有帮助
I->F()->F1()->F2();
如上,物件的箭头可串接呀 XD
读成:I 这个物件它的方法 F 产生的物件的方法 F1 产生的物件的方法 F2 的动作
如果没有 C++,用 C.....
F2(F1(F(&I)));
执行是一样,但脑袋很难把它想成物件导向
因为外层是程序,感觉就是程序导向
是为程序准备资料 I
而不是为物件 I 去执行程序;物件 I 是活的,资料 I 感觉不到是活的
PHP 学到 Cake 的例子
findbymail($mail);
目前我还是想骂人,觉得会不会走火入魔了;因为我搜寻不到,很累
它要是写成
findby('mail',$mail); //一样嘛
好吧,这样有点多余,看了不爽,算可读性扣分,那
findby($mail); //这样不是更爽 XD
自动判断 $mail 内部是个 mail 有点困难
好吧..看来 findbymail 设计得不错 XD
而且它其实是以前我写 C 时的一个渴望
class C
{
int a,b,c,d,e,f,g,h,i,j;//莫名其妙就一堆变数
public:
int geta(); //然後同事就说不要偷懒把变数给 public,一定要写 method 去拿
int getb(); //才叫良好的封装;喔,这样那些变数就变唯读,老实说封得蛮好的
int getc();
.
.
.
}
所以现在有大绝了 XD
class C
{
int a,b,c,d,e,f,g,h,i...;
int get_(); //这个函式会变型,自己生出一堆 geta,getb,getc;反正内容大同小异
}
这不就是 template 在干的事嘛
只是 template 超难 trace 的,宣告及实作都长得很畸型(只有爽到叫用的人)
且它有实质产生对应的 function object
看来 PHP 就是依渴望而修改的 :)
幸好它是 Server 端
不然依我们软体公司把软体视为财产的想法
叫我把 source code 供在那边不能 compile
这样怎麽活下去..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.65.16
1F:→ starjou :还蛮离题的,PHP 的优势在於做动态网页 07/24 00:23
2F:→ starjou :在这方面它非常方便而且好上手(如果有把 document 07/24 00:23
3F:→ starjou :浏览一下,主要章节 K 一下,函式库目录扫一下) 07/24 00:24
4F:→ starjou :要拿他去做 OS 的什麽什麽、C 能做的什麽什麽 .... 07/24 00:24
5F:→ starjou :应该不是一条近路 07/24 00:24
6F:→ HuangJC :对於会自己写函式库的人来说,函式库不支援并不是大事 07/24 11:02
7F:→ HuangJC :所以才会从语言架构及优势去检视;另外不是写 OS 07/24 11:03
8F:→ HuangJC :而是写批次档 07/24 11:03