• 2016-08-19

    集成于 iphp 框架的 PHP 并发模型和工具

    Views: 27054 | 2 Comments

    由于 PHP 具有"所思即所写"的强大优势, 使其在 Web 之外, 也被广泛用于后台脚本编写. 而且, 当你已经用 PHP 来开发 Web 应用时, 你显然不愿意再引入 Java 或者 Python 等语言, 再说, 这些语言相对 PHP 的强大优势, 显示太弱了.

    不过, 用 PHP 来编写后台脚本, 也有一些劣势, 那便是 PHP 缺少并发模型. 例如, 当你用 HTTP 请求第三方服务, 而第三方每一个请求要处理 10 秒时, 这就需要你并发地发起请求. curl_multi 当然能处理, 但不通用, 而且对代码逻辑的改变太大, 需要从串行化改为批量化, 对思维干扰太大.

    为此, PHP 提供了一套 Master-Workers 并发模型, 帮助你实现 PHP 的并发处理.

    Continue reading »

    Posted by ideawu at 2016-08-19 14:29:36
  • 2016-07-18

    CocoaUI 框架开发 iOS 应用的一般步骤

    Views: 22465 | No Comments

    CocoaUI 是一个非常强大方便的 UI 框架, 使用它, 可以极大的简化 iOS 界面开发, 你既不需要学习一套新的语法和语言, 也不需要使用繁琐的约束布局, 它用的就是 Web 开发中最常见的 HTML + CSS 流式布局方式, 但生成的是 iOS 原生的界面.

    有用户这样评价:

    @MrLiHong:
    这个框架真心方便,之前大部分时间都花在调整UI布局上了,整个过程枯燥无聊! 现在用这个框架后,效率提升太多,有更多的时间去写业务逻辑! 非常感谢!!!

    使用 CocoaUI 框架, 如果你遵循我推荐的步骤和方法, 可以让你的工作更快捷.

    1. 首先, 你需要阅读 http://www.cocoaui.com/ 上面的文档, 一定十几个网页, 请务必要仔细阅读.

    2. 接着, 下载 CocoaUI 框架的源码, 用 XCode 打开.

    3. 用 CocoaUI Viewer 界面调试器来调试 UI. 在这一步, 你就是将美工设计的界面图直接转换成 app 界面, 所见即所得, 非常方便.

    4. 最后, 在代码里加载 XML, 绑定事件. 一旦你用界面调试器调试完 UI 后, 就把 xml 文件移到你的 XCode 项目里, 然后用文档中提到的方法加载 UI. 加载后, 通过类似 getElementById() 一样的方法, 将 Objective-C 代码绑定到按钮或者输入框上面, 处理业务逻辑.

    Posted by ideawu at 2016-07-18 11:45:39 Tags:
  • 2016-07-06

    代码 Review 要点

    Views: 14200 | 1 Comment

    1. 做代码 Review 的人的责任

    给别人的代码做 Review 的人(Reviewer), 他的责任不仅在于保证代码质量, 更重要地是承担拼盘者角色. 当编写代码的人未来因忙于别的项目, 休假或者别的原因无法在岗时, Reviewer 将负责接手项目, 修复 bug, 增加新功能等. 所以, Reviewer 必须为自己着想, 认真负责地进行代码 Review, 以免日后自己接手一个逻辑不通, 代码混乱的项目(程序员俗话说的"一坨屎").

    2. 做代码 Review 的原则性要求

    首先, 做代码 Review 前, 要了解产品需求, 并从产品需求出发, 整理自己的技术思路, 然后讨论被 Review 者的逻辑, 看看是否有逻辑漏洞. 如果有逻辑漏洞, 那么必须全部打回, 因为逻辑一旦不准确不严谨, 后面的代码就是在建造 bug 而不是开发功能.

    Continue reading »

    Posted by ideawu at 2016-07-06 12:42:51
  • 2016-07-01

    程序员, 不要过度封装!

    Views: 19898 | 6 Comments

    c

    过度封装是程序员最容易犯的错, 因为是否过度并没有固定的数值标准, 只能是有经验的程序员基于科学的判断. 过度封装的危害十分严重, 所以必须重视, 并且极力避免.

    首先, 什么是"过度封装"? 我们知道, 计算机科学领域最称为经典也是最强大的思想便是递归, 分而治之. 但是, 递归本身最重要的因素是: 结束条件. 一生二, 二生三, 三生万物, 总要有终止的条件吧? 不然一辆车不停地急驰, 你怎样上车?

    新手程序员, 特别是非科班出身的文科程序员, 最容易犯了过度封装的错误的原因就是不知道何时适可而止, 脑筋往往不断地分解分解再分解问题, 最后, 你看到的就是这个调用那个, 那个引用这个, 乱七八糟毫无头绪, 三两行代码的函数比比皆是, 自以为封装抽象, 其实是拿捏不好这个度.

    Continue reading »

    Posted by ideawu at 2016-07-01 17:10:26
  • 2016-06-23

    单启动多个mysql实例mysqld_multi配置

    Views: 13244 | No Comments

    1. 创建 mysqld_multi.conf 配置

    [mysqld_multi]
    mysqld=/usr/bin/mysqld_safe  
    mysqladmin=/usr/bin/mysqladmin 
    user=AAA
    password=BBB
    
    
    [mysqld3306]
    port=3306
    datadir=/var/lib/mysql3306
    socket=/var/lib/mysql3306/mysql.sock
    pid-file=/var/lib/mysql3306/mysqld.pid
    log-error=/var/log/mysqld_3306.log
    user=mysql
    symbolic-links=0
    character-set-server = utf8
    skip-name-resolve
    
    server-id=123
    log-bin=mysql-bin
    log-slave-updates
    binlog-ignore-db=mysql
    binlog-ignore-db=test
    binlog-ignore-db=information_schema
    binlog-ignore-db=performance_schema
    replicate-ignore-db=mysql
    replicate-ignore-db=test
    replicate-ignore-db=information_schema
    replicate-ignore-db=performance_schema
    master-connect-retry=10
    max_connections=1000
    
    sort_buffer_size = 300M
    join_buffer_size = 300M
    key_buffer_size  = 300M
    innodb_buffer_pool_size = 4000M
    query_cache_size=200M
    

    注意, 要配置 user 和 password, 一会将要创建一个帐号用于 mysqld_multi.
    Continue reading »

    Posted by ideawu at 2016-06-23 16:27:32
  • 2016-06-23

    PHP过滤掉Emoji表情字符

    Views: 22855 | 1 Comment

    这段代码在 stackoverflow 上搜到, 据说是 Smarty 用的.

    function smarty_modifier_emojistrip($string)
    {       
        return preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $string);
    }
    
    Posted by ideawu at 15:53:56
|<<<171819202122232425>>>| 21/138 Pages, 825 Results.