Spockwang's Blog

Web应用开发中的几个问题

| 评论

Introduction

由于Ajax技术在Gmail中的成功应用和高性能的V8引擎的推出使得编写Web应用变得流行 起来,使用前端技术也可以编写具有复杂交互的应用。相对于native应用,Web应用具 有如下优点:

  • 跨平台,开发和维护成本低;
  • 升级和发布方便,没有版本的概念,随时随地发布,用户没有感知,不需要安装;
  • 响应式设计(Responsive Design)使得Web应用可以跨平台,同一份代码自适应各种 屏幕大小
  • 即使最终不采用Web应用方案,也很适合开发原型

2013年学到了什么

| 评论

  1. 不要思考现有技术能做什么,而要思考你真正需要什么,然后再想办法用现有技术 做出来。即使现有技术做不出来也不要紧,可以做一个接近目标的。不要让现有技术束 缚了你的思维。

C++ Idioms

| 评论

Pimpl idiom

Declare the constructor and destructor in the header file and define them in the source file when using Pimpl idiom, even if they are empty.

使用Booch方法进行面向对象分析与设计

| 评论

Introduction

Brian Kernighan在_Software Tools_一书中表达了这样的观点:“编程的本质就是控制 复杂性”。正是软件的复杂性导致了大量软件项目的失败、延期或者超出预算,甚至带 来巨大灾难。纵观整个编程方法学和软件工程的发展历程,无不是在为驯服软件的复 杂性而努力。如果把眼光不仅仅是局限在软件领域,我们发现其它领域也一样表现出巨 大的复杂性,例如,跟软件密切联系的硬件领域,生物,人体构造,物质结构和社会 组织等。自然界到处充斥着极其复杂的对象,但是软件的复杂性与自然界的复杂性不 一样,正如Brooks所说:

MySql Help

| 评论

Backup and Recovery

Use following command to backup an InnoDB table

1
2
$ mysqldump -u username -p password --default-character-set=utf8 
    --single-transaction db_name table_name > db_name-table_name-backup.sql

If you want to backup the whole database you just omit the table name. And then use the following command to recover the table.

1
$ mysql -u username -p password db_name-table_name-backup.sql

GNU Tool Chain

| 评论

Create Static Libraries

To compile source files

$ gcc -c file1.c file2.c ...

To create archives

$ ar r lib<sth>.a file1.o file2.o ...

See ar(1).

C++ Gotchas

| 评论

Variables, Operators and Conversions

Implicit conversions are not applied to non-const reference arguments. See p.146 of [C++].

The distinction between const-reference and non-const reference parameters is that the former matches constants and const variables while the latter matches others in overloading resolution. Const-reference can bind temporary objects but non-const reference can not.

Not like C, consts have internal linkage by default. However, you can use extern to give it external linkage. See bottom of p.199 of [C++].

There are four kinds of cast in C++: static_cast, dynamic_cast, const_cast, and reinterpret_cast.