软件行业和传统制造业

一直都有个想法把传统制造业的一些知识和软件开发行业结合起来思考一些东西。毕竟传统制造业发展了两百多年(从第一次工业革命开始),而软件“制造”行业只发展了大概不到20年的时间。
其实二者还是有很多相似之处的,都属于劳动密集型,无论是脑力还是体力。企业目标都是一样的,寻求工资更低,技术更熟练的“工人”。但是软件制造业的发展很大一部分还是停留在很粗放,浪费严重的阶段,而传统制造业却早已向着精益发展了。
也许解决这个发展滞后的问题不能拿传统制造业的解决方案生搬硬套,毕竟体力劳动者和脑力劳动者的激励和监督方法都是不一样的。你可以看到一个车间工人到底是不是在用心工作,但却无法从程序员呆滞的眼神中分辨出他到底是在想技术问题还是在想股票。

SWT的布局管理小结

SWT的布局管理

FillLayout
组件填满整个容器,当容器大小变化时,组件同时跟随变化。如果同时添加多个组件,则每个组件将平均分配容器空间。默认情况下filllayout会水平添加多个组件。可以通过设置来达到垂直加入。
s.setLayout(new FillLayout(SWT.VERTICAL));

RowLayout
组件会按行排列,当容器大小不够排列时,组件会自动排到第二排。如果不希望容器自动排列,可以通过设置wrap:rl.wrap = false;
如果想要让一排中所有组件都同宽,可以通过设置pack:rl.pack = false;
设置纵向排列RowLayout rl = new RowLayout(SWT.VERTICAL);

GridLayout
可以设置参数决定组件加入容器时占多少行、列单元格,如何填充.
设置列数:
GridLayout gl = new GridLayout( );
        gl.numColumns=3;
        s.setLayout(gl);
控制组件的尺寸和对齐方式:
对齐方式:
GridData gd = new GridData( );
gd.horizontalAlignment = GridData.CENTER;//GridData.BEGINNING,GridData.END
l1.setLayoutData(gd);
组件填充方向:
gd = new GridData(GridData.FILL_HORIZONTAL); //FILL_VERTICAL,FILL_BOTH
t1.setLayoutData(gd);

FormLayout
用来布局表单,也是最复杂的布局管理,在FormLayout中FormData和FormAttachment的设置是必需的。
    FormData fd = new FormData( );
        fd.top = new FormAttachment(10, 10);
        fd.left = new FormAttachment(0, 10);
        fd.bottom = new FormAttachment(30,0);
        fd.right = new FormAttachment(40,0);
        l1.setLayoutData(fd);
上面这几行代码首先设置了组件的上下左右边缘的距离 – 上端位于整个容器的10%处,