V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  asj  ›  全部回复第 4 页 / 共 11 页
回复总数  204
1  2  3  4  5  6  7  8  9  10 ... 11  
2017-06-07 09:53:18 +08:00
回复了 liteyou 创建的主题 程序员 最烦教人瞎装 X 的,绝必要戳漏下
严格意义上计算机确实不会发生“同时”的事件,问题是他举的电梯的这个例子未必关心时间戳啊。
有可能是每隔一个时间段,或者电梯每到一个空闲点的时候,查询哪些楼层按下了按钮。这时候从电梯调度程序来看,这两个楼层就是同时请求了。
当然可以建议在按按钮的时候记录时间戳,其实相当于提出了一个先到先得的算法。其实如果只是要解决所谓“同时”的话,时间戳也可以不要,按楼层数字大小定优先级也可以。
当然这样调度从电梯使用角度是否高效就是另一回事了。
2017-04-07 10:24:29 +08:00
回复了 spacewander 创建的主题 程序员 良好的测试覆盖率很有用
@ryd994 debug 是弱智行为! ^_^
2017-03-22 17:01:21 +08:00
回复了 chenqh 创建的主题 Python 问下你们是怎么写单元测试的?
你没发现看起来是单元测试的问题,换个角度其实是被测代码的问题么?
2016-12-07 14:35:36 +08:00
回复了 gaayyy 创建的主题 程序员 这是用神码语言写的啊?
@shijingshijing
@EdwinGhreiC
多谢,看来好像是让字幕坑了
2016-12-06 15:00:48 +08:00
回复了 gaayyy 创建的主题 程序员 这是用神码语言写的啊?
我怎么记得某集里开发部的小姑娘有句台词说到过 Python
2016-10-20 13:36:39 +08:00
回复了 enenaaa 创建的主题 程序员 我就问一下大家写代码都是测试驱动吗
本想说王喷子懂个 p 的 TDD ,读了一遍发现还是挺懂的。:)
不过他那 12 条里除第 3 条和半个第 7 条外都和 TDD 没什么冲突。
2016-10-08 14:10:21 +08:00
回复了 Lumuy 创建的主题 程序员 包含子字符串 A, B 且 A B 至少出现一次的正则写法
(?=.*A.*)(?=.*B.*).*
哈哈,想起来很久以前看到有人说 Word 和 Excel 是 VB 写的
2016-08-19 09:40:53 +08:00
回复了 miaoxia 创建的主题 Java Java 中,究竟如何使用静态变量?
@miaoxia 说设计什么的可能有点虚,最直接的原因是这样的代码非常难写 unit test 。尝试一下就会有感觉了。
2016-08-18 17:24:53 +08:00
回复了 miaoxia 创建的主题 Java Java 中,究竟如何使用静态变量?
只应该拿来定义常量。
如你问题里描述的需求,应该用 Spring 或者其他框架来管理对象的生命周期,而非依赖语言特性。
2016-07-03 06:28:58 +08:00
回复了 jybox 创建的主题 程序员 给初入门程序员的建议(原创文章)
"不要相信一句话就可以描述的真理"
比如说上面这句话
2016-06-22 12:53:31 +08:00
回复了 windirt 创建的主题 程序员 一个租房广告引发的代码战争
Haskell
putStrLn $ ($ (head.show) `map` [8,2,1,0,3]) `map` (flip(!!) `map` [2,0,3,2,4,0,1,3,2,3,3])
2016-05-17 09:48:55 +08:00
回复了 shisaq 创建的主题 程序员 想问一下肚子大小和程序员级别的关系
RMS 躺枪
2016-05-04 09:31:13 +08:00
回复了 aWangami 创建的主题 程序员 像这样的技术分享,大家觉得有没有参加的价值?
这篇 blog 说的不错
https://kenengba.com/post/3442.html
2016-05-03 10:29:11 +08:00
回复了 lianxiangru 创建的主题 程序员 牛逼的程序员跟大多数程序员差别能有多大?
算了,看你们吵这么 high ,认真答一下吧。比如我认为 Three.js 的设计者就是一个牛逼的程序员。
Three.js 做了什么呢?在页面显式 3d 图像,完全不是高科技。
更 low 的是, Three.js 甚至没有自己实现 3d 引擎什么的,只是调用 WebGL 而已。用题主的话来说,就是调用 API 什么的。

在没有 Three.js 之前, WebGL 的 API 是这么调用的。
```
// Initialize WebGL Context.
var canvas = document.getElementById("c");
var gl = canvas.getContext("experimental-webgl");
gl.viewport(0, 0, 640, 480);
gl.clearColor(0.2, 0.2, 0.2, 1.0); // Set clear color to (very) dark gray.

// Create the 3D model, as a GL Vertex Array Buffer and a GL Index Array Buffer.
// Vertex buffer.
var modelVertexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, modelVertexBuffer); // "Activate" buffer.
var vertices = [
-1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, 1.0,
-1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0, 1.0, -1.0
]; // A cube.
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW); // Copy the data into the buffer (VRAM).
// Index buffer.
var modelIndexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, modelIndexBuffer);
var indices = [
0, 1, 1, 2, 2, 3, 3, 0,
4, 5, 5, 6, 6, 7, 7, 4,
0, 4, 1, 5, 2, 6, 3, 7
];
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW);

// Initialize the matrices.
var mvMatrix = mat4.create(); // Model-View.
var pMatrix = mat4.create(); // Projection.
mat4.perspective(30, 4.0 / 3.0, 0.1, 100.0, pMatrix);
mat4.identity(mvMatrix);
mat4.translate(mvMatrix, [0.0, 0.0, -7.0]);
mat4.rotate(mvMatrix, 0.5, [1, 1, 0]);

// Initialize the shaders.
// Create a vertex shader.
var vertexShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vertexShader, document.getElementById("shader-vertex").innerHTML);
gl.compileShader(vertexShader);

// Create a fragment shader.
var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fragmentShader, document.getElementById("shader-fragment").innerHTML);
gl.compileShader(fragmentShader);

// Create a shader program using the two shaders.
var shaderProgram = gl.createProgram();
gl.attachShader(shaderProgram, vertexShader);
gl.attachShader(shaderProgram, fragmentShader);
gl.linkProgram(shaderProgram);

// Get the attributes and uniforms from the program.
gl.useProgram(shaderProgram);
var vertexPositionAttr = gl.getAttribLocation(shaderProgram, "aVertexPosition");
gl.enableVertexAttribArray(vertexPositionAttr);
var pMatrixUniform = gl.getUniformLocation(shaderProgram, "uPMatrix");
var mvMatrixUniform = gl.getUniformLocation(shaderProgram, "uMVMatrix");

// Render the scene.
// Clear the canvas and render the model.
gl.clear(gl.COLOR_BUFFER_BIT); // Clear the scene.
gl.bindBuffer(gl.ARRAY_BUFFER, modelVertexBuffer); // "Activate" vertex buffer.
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, modelIndexBuffer); // "Activate" index buffer.
gl.vertexAttribPointer(vertexPositionAttr, 3, gl.FLOAT, false, 0, 0); // Point at the vertex.
gl.uniformMatrix4fv(pMatrixUniform, false, pMatrix); // Send the projection matrix.
gl.uniformMatrix4fv(mvMatrixUniform, false, mvMatrix); // Send the model-view matrix.
gl.drawElements(gl.LINES, 24, gl.UNSIGNED_SHORT, 0);

console.log("HELLO WEBGL");

```
其实 WebGL 也是从 OpenGL 抄来的,这段 API 做了什么事呢,创建了两个图形。
Three.js 做了什么事,它还是调用了这些 API 。同样的功能,对于使用者来说是这样的。
```
// Build canvas.
var renderer = new THREE.WebGLRenderer();
renderer.setSize(640, 480);
document.getElementById("container").appendChild(renderer.domElement);
// Build scene.
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(30, 640.0 / 480.0, 0.1, 1000);
camera.position.z = 7;
var mesh = new THREE.Mesh(
new THREE.BoxGeometry(2, 2, 2),
new THREE.MeshBasicMaterial({color: 0xffffff, wireframe: true}));
mesh.quaternion.setFromAxisAngle((new THREE.Vector3(1, 1, 0)).normalize(), 0.5);
scene.add(mesh);
// Render the scene.
renderer.render(scene, camera);
console.log("HELLO THREE.JS");
```
2016-04-29 22:27:17 +08:00
回复了 lianxiangru 创建的主题 程序员 牛逼的程序员跟大多数程序员差别能有多大?
感觉也差不多,如果没电的话
2016-04-25 13:40:51 +08:00
回复了 LINEX 创建的主题 Java java 中烦人的 null 在开发中怎么处理的?
@darasion GC 也严重削弱了程序员的成就感。
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4993 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 05:44 · PVG 13:44 · LAX 22:44 · JFK 01:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.