14 年 7 月份入职,马上 PHP 从业满周年,总结下工作 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
linoder
V2EX    程序员

14 年 7 月份入职,马上 PHP 从业满周年,总结下工作

  •  1
     
  •   linoder 2015-05-17 23:19:51 +08:00 6109 次点击
    这是一个创建于 3850 天前的主题,其中的信息可能已经有所发展或是发生改变。
    关于PHP:

    关于PHP本身就学会了一件事搭框架。最开始用ThinkPHP发现,实现一个小项目引入那么多不必要的文件,实在是杀鸡用牛刀。随即学会了__autoload实现基本的MVC框架,接下来的许多英文站项目就用自己写的框架。进公司后前几个项目只是为了读写XML以及解析HTML源码,框架引入phpQuery作为XML的读写器。后来调用频率高了,服务商会返回Busy状态,自己实现了一个文件形式的Cache类,通过把对象两次json_encode,存储在磁盘,且引入了Cache过期机制(其实很简单,文件头部写明expire time,create time,读到时候判断过期没有,如果过期了重写一下,弊端就是不经常访问的cache会保存在目录。我是在linux下面写了一个Cron定期删除cache …… 好土),熟悉了很多File操作的东西。最近需要用到一些管理功能,就在框架中加入了模仿ThinkPHP的DB操作类,写起代码来顺手了很多。

    关于优化:

    就会用Memcached,构造出特殊key,实现数据的高速读写,定时持久化到数据库,销毁对象,仅此而已。

    关于前端:

    说实话,公司中写的前端页面比较少,私活写的多一些。HTML5+CSS3手写能很熟练的依据设计稿写出响应式页面,私有一套适合自己用的CSS reset,当然也结合已有的css reset了。为方便一般会用jQuery,原生JS也会用,但不精通。同样帮朋友写过简单的EDM,了解了很多EDM必须要注意的技术点。也会Bootstrap,不过如果不是特别紧的项目,怕自己荒废了基本功,所以并不经常用。

    关于Linux:

    说来惭愧,L从上学时候就用,目前也就是chmod、chown、ls、find、grep、axel、lvm分区的vg*、lv*这些基本的命令的水平。

    数据库:

    老土的增删改查,基本JOIN,或者FULLTEXT/MATCH/AGAINST这些,最多用个事务确保数据并发读取一致。

    一句话总结:

    范范的度过了一年,又老了一岁。

    以后的技术路程,应该怎么走呢?该学哪些呢?
    30 条回复    2015-06-13 16:43:49 +08:00
    pein0119
        1
    pein0119  
       2015-05-17 23:43:33 +08:00
    虽然是PHP研发,但不要老是局限于语言层面。
    linoder
        2
    linoder  
    OP
       2015-05-18 00:37:45 +08:00
    @pein0119 小公司,重点在于业务逻辑。 算法、数据结构什么的,上学时候也玩过一段时间。工作一年再没怎么刻意玩过。一年时间,学的不多,忘掉的倒是不少。
    Wangxf
        3
    Wangxf  
       2015-05-18 02:24:03 +08:00
    哈哈,同去年7月毕业,不过我是前端,我司也是用thinkphp,不过网上鄙视tp的蛮多的,不过我觉得蛮顺手啊,可能是没用过其他框架或者本身不是做php的体会不到吧
    g8287694
        4
    g8287694  
       2015-05-18 08:56:16 +08:00
    同样是去年7月份 差不多一年 LZ比我强多了
    sixbyte
        5
    sixbyte  
       2015-05-18 09:21:48 +08:00
    我觉得使用框架会本末倒置
    watcher
        6
    watcher  
       2015-05-18 09:25:31 +08:00
    跟我现在经历差不多,有时间交流一下?q 四151593五
    pein
        7
    pein  
       2015-05-18 09:54:46 +08:00
    一年就学成这样,挺厉害的,楼主秋秋多少?一起交流下学习心得
    G2bN4dbX9J3ncp0r
        8
    G2bN4dbX9J3ncp0r  
       2015-05-18 10:13:26 +08:00
    @sixbyte 难道你要从头造轮子!!
    huigeer
        9
    huigeer  
       2015-05-18 10:24:07 +08:00
    楼主很不错了, linux还是要多多掌握练习, mysql建议多读读高性能mysql , 设计模式和企业架构方面的也要涉及学习下, 尽量往架构的方面发展
    linoder
        10
    linoder  
    OP
       2015-05-18 10:31:54 +08:00
    @Wangxf TP挺好的,只是杀鸡用牛刀不合适。
    linoder
        11
    linoder  
    OP
       2015-05-18 10:33:52 +08:00
    @g8287694 都只是用了一下而已,学到的实际上很少,是皮毛。
    shenxian
        12
    shenxian  
       2015-05-18 10:34:33 +08:00
    非科班,业余接触PHP快两年了,现在那本《》还没翻完,云主机玩了一堆,用wordpress搭了博客也没怎么写。。感觉我这一年才是迷茫没长进。共勉加油
    shenxian
        13
    shenxian  
       2015-05-18 10:38:19 +08:00
    @shenxian 晕 书名忘写了 PHP 和 MySQL Web开发。看书学习,给公司打了个报表数据处理+查询的简易网站
    linoder
        14
    linoder  
    OP
       2015-05-18 10:45:17 +08:00
    @sixbyte 用了一段时间框架,确实能学到很多框架的设计思路,虽然也就过眼云烟,但刚看明白的那瞬间是很惊艳的感觉。不过比起原生的自己打磨一个框架,学的效率不多。话说回来了,小公司做出东西才是王道,确保性能和稳定性满足产品需求就行,业务流程是大头。我是这样认为的,你呢?

    @watcher 好的加你了。

    @pein 不才,许多只是用了一点点,铺展开来说罢了。感觉根本没有学到什么,都是皮毛,但又不知道怎么才算学会。说下你的,我也很想找人交流交流。
    @huigeer 谢谢建议,数据库确实很头大。现成的库、表需要操作,难度我感觉不是大问题,毕竟操作不会了还有百度。可是让我独自设计一个系统的表、库结构,我HOLD不住。感觉模块划分更多的依赖于经验,以前就了解“不要通过数据流来划分模块”。不过到现在都不知道怎么样正确的划分。DB用的少,我会找机会多用用的。
    ChoateYao
        15
    ChoateYao  
       2015-05-18 12:07:27 +08:00
    如果你觉得数据库蛮OK,Linux操作系统也还可以,这时候我觉得你可以看下单元测试、代码重构、设计模式、代码整洁之道之类的东西,毕竟这些是基础哪种语言都需要用上。
    sixbyte
        16
    sixbyte  
       2015-05-18 12:33:24 +08:00
    @lidashuang 小公司确实是要做出东西来, 用框架是正确的.我thinkphp用过一段时间,现在公司用laravel,但由于框架太过强大,有时候会发现,就算不懂php, 看懂框架的官方文档就能编程. 过于依赖框架,就和题主的学习本末倒置了.
    raincious
        17
    raincious  
       2015-05-18 12:39:44 +08:00
    @sixbyte

    你刚好说明了框架存在的意义。

    相反,如果能用框架做出稳定可靠的东西,为什么要“深入研究”语言特性?何况现在语言的趋势就是尝试忽略具体的技术细节,将注意力集中在业务上,这样才能提高效率。否则PHP这种语言都不会存在,因为C也(就)能写服务器啊,甚至汇编(当然)也能写。

    (所以,正因为如此,考察语言细节才能准确体现出程序员的编程能力。
    pein
        18
    pein  
       2015-05-18 13:21:47 +08:00
    @linoder 28零7702二07
    yangmls
        19
    yangmls  
       2015-05-18 13:45:26 +08:00
    @sixbyte 那只能说明你们公司对代码质量的要求太低了,laravel 那点文档根本不顶用,很多代码你想写好,不把 laravel 源码翻得底朝天根本不知道如何写出 best practice 的代码。

    我平时和一些 php 码农打交道的过程中,能把 laravel 用好的少之又少。一个人不懂 PHP 也能编程?换句话说,连 PSR 都不懂的码农写出来的 php 代码能看?
    linoder
        20
    linoder  
    OP
       2015-05-18 13:56:53 +08:00
    @ChoateYao 我觉得,我目前对于PHP掌握的还是很少。打算再造一个好的轮子。

    @sixbyte 偶尔读读好框架的源码真的受益匪浅,Laravel久仰大名一直没看,我是重度手癌患者。


    @raincious 的确,差异大多在基本功。http://wulijun.github.io/php-the-right-way/ 我时不时会翻开这个看看。

    @pein 已经添加

    @yangmls 重度框架用的好真心不容易,我觉得比再造轮子都难。
    cvmax
        21
    cvmax  
       2015-05-18 14:03:00 +08:00
    我还在你的第一句话里面折腾呢
    pein
        22
    pein  
       2015-05-18 14:23:37 +08:00
    @linoder 对方设置了“只允许通过email添加”。。
    linoder
        23
    linoder  
    OP
       2015-05-18 16:22:01 +08:00
    @pein 我已经加你了 sigleo[#]foxmail.com
    cougar
        24
    cougar  
       2015-05-18 22:55:30 +08:00
    做了一阵子php了,一直没有用过ci和tp之类的框架,觉得太大,觉得用php和smarty模板就挺好用的了
    crabRunning
        25
    crabRunning  
       2015-05-19 00:42:44 +08:00 via Android
    和楼主同一届的,撸过东西也算蛮杂的,刚开始也是thinkPHP起步,后来撸了initPHP,也提交过一些代码,再后来撸了之yii,再后来就自己撸了个框架,当然PHP周边也折腾了很多,诸如sphinx,coreseek,mongo,redis有sphinx,coreseek之类,
    lujiajing1126
        26
    lujiajing1126  
       2015-05-19 14:40:41 +08:00 via Android
    以前做php好多年,做过专职前端架构,后来换了公司做rails去了,又学了安卓,现在做了nodejs。。当中服务器运维什么都干过
    业务方面感觉好无聊,现在觉得游戏,服务器和系统编程比较有趣
    charlestang
        27
    charlestang  
       2015-05-19 16:37:40 +08:00   1
    看了楼主的帖子,感触蛮深的,我是工作了5年的PHP

    1. 一个框架用好、用透就行了,别的框架也差不多,触类旁通的,不用自己写一个框架的,除非你觉得你写一个能够锻炼你的能力,否则的话,大部分应该有的功能,各种框架已经实现遍了,基本上,写框架除了练习,就是浪费时间了;

    2. PHP在语法上没有任何难点,设计思想上,基本上也没有什么亮点和营养,就是一个解决问题的语言,所以,个人觉得,归根结底还是去解决问题,学习解决问题的通用方法;比如面相对象方法论,设计模式,这些都是指软件构建时候的一些通用方法论,是值得去研究的,但是不必拘泥;

    3. 前端技术发展太快,而且个人也觉得是在朝着不断解放生产力的工程实践创新方向发展,没有技术本质的进步,没有必要去跟随,太过累了;

    4. 关系型数据库还是存储的主流,尤其是MySQL,基本是高性能、低成本的同义词了,还是要深入掌握,尤其是InnoDB,索引,理解越深越好;

    5. 网站架构师可能是一个发展方向,走到后来,你不得不跟java,python,ruby,node,go,等各种兄弟开始竞争;

    6. 架构师要了解网站所有的层面的问题,并有所掌控。比如网站在规模扩大的时候,会遇到什么困难,比如数据库访问压力,那要怎么去处理,加cache,nosql,然后,读写分离,一主多从,队列;然后会有什么困难,可能是io压力,怎么平行扩容,冷备,热备,自动切换,自动伸缩,容灾;多种业务有不同特性,比如高并发,间歇性;读多写少,读少写多;高可靠优先,高性能优先,取舍问题;还有一种,类似游戏和聊天之类的,有大量连接的问题,怎么去处理;

    7. 架构师基本是技术广度的问题,鸟哥的道路也不错的,就是技术深度的问题,比如研究PHP的解释器,从领域语言层面解决问题,实现扩展,进而到改进PHP内核,都是不错的发展方向,只是我觉得,这是光荣的荆棘路,要吃得了苦,耐得住寂寞;
    linoder
        28
    linoder  
    OP
       2015-05-19 16:38:17 +08:00
    @cougar 看个人喜好 以及 公司要求了


    @crabRunning 牛,允许我膜拜一下


    @lujiajing1126 强人
    linoder
        29
    linoder  
    OP
       2015-05-19 17:10:31 +08:00
    @charlestang 非常感谢前辈的指点。我之所以会自己写一个简单框架确实只是希望能熟悉下PHP。实际开发中也发现自己写的框架坑确实不少,这也许是一个必经之路,不自己撸一把,永远也不知道别的框架有什么优秀特性。

    学艺不精,目前来说,PHP的许多东西还没摸透,估计等熟练的差不多,我才能像你一样说语法没任何难点。

    感触较深的就是“业务的抽象能力”,原本上学时候没什么想法,工作一段时间真的体会到这方面的不足。单独说清楚设计模式不是很难,但在何种情况用何种模式我自己还是有些心虚。重度手癌患者,欠缺太多工程知识。

    自己对前端比较生疏,只是停留在大体做出页面这个层次,用过一点Canvas,高端的MVVC框架譬如AngularJS之类没用过,目测以后主要精力在PHP后端。我数据库知识了解的太少,有待学习,实际工作中用都没怎么用过,也是预期精力投入的重点之一。

    我想等到前面这些学好,项目经验丰富起来,后面的事情就很好办多了。

    感慨前路漫漫,谢前辈经验分享。
    zymanor
        30
    zymanor  
       2015-06-13 16:43:49 +08:00
    hi,你好,我们霍比特公司目前在招募php技术伙伴,自荐或推荐成功奖金5000元哈(单身技术宅男,帮找女朋友),下面是我们在拉勾网的招聘信息,感兴趣的话可以看一下哦。http://www.lagou.com/jobs/206691.html
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5024 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:36 PVG 17:36 LAX 01:36 JFK 04:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86