小编Mad*_*iha的帖子

敏捷的神话和误解

敏捷有哪些神话或误解?

有一些与敏捷有关的误解可能会导致普通新人陷入困境.敏捷世界有什么误解,你如何证明这是一种误解呢?


更新:敏捷神话总结

  • 敏捷不允许文档
  • 敏捷方法无法扩展
  • 敏捷意味着没有计划
  • TDD涵盖了所有单元测试需求
  • 结对编程总能产生更好的代码
  • 敏捷是解决软件工程问题的银弹解决方案(有一个银弹解决方案)
  • 敏捷不需要预先设计
  • 我们正在做scrum所以我们不需要做TDD,重构结对编程等.
  • 人们可以从一本书中学习敏捷
  • 敏捷只适用于琐碎的项目
  • 敏捷总是使用"用户故事"

阅读以下答案,了解有关上述神话和更多神话的更多信息.

agile scrum extreme-programming

31
推荐指数
7
解决办法
9096
查看次数

如何处理数据库中的并发更新?

在SQL数据库中处理并发更新的常用方法是什么?

考虑一个简单的SQL模式(约束和默认值未显示..)之类的

create table credits (
  int id,
  int creds,
  int user_id
);
Run Code Online (Sandbox Code Playgroud)

目的是为用户存储某种信用,例如stackoverflow的声誉.

如何处理该表的并发更新?一些选择:

  • update credits set creds= 150 where userid = 1;

    在这种情况下,应用程序检索当前值,计算新值(150)并执行更新.如果其他人同时做同样的事情,那么这就是灾难.我猜测包装当前值的撤销和事务中的更新将解决这个问题,例如,Begin; select creds from credits where userid=1; do application logic to calculate new value, update credits set credits = 160 where userid = 1; end;在这种情况下,您可以检查新信用是否<0,如果负信用没有意义,则将其截断为0.

  • update credits set creds = creds - 150 where userid=1;

    这种情况不需要担心并发更新,因为数据库负责一致性问题,但是有一些缺陷,即信用很高兴会变成负面的,这可能对某些应用程序没有意义.

那么简单地说,处理上面提到的(非常简单的)问题的公认方法是什么,如果db抛出错误怎么办?

sql concurrency

29
推荐指数
4
解决办法
5万
查看次数

PostgreSQL HASH索引

有谁知道应该使用PostgreSQL HASH而不是B-TREE的情况,因为在我看来这些东西都是陷阱.它们比B-TREE花费更多的时间来创建或维护(至少10倍),它们也占用更多空间(对于我的一个table.columns,B-TREE占用240 MB,而HASH会占用拿4 GB)我似乎从谷歌搜索中了解到,他们选择的速度不比B-TREE快; 然而HASH最近可能已经优化或谷歌错了.

无论如何,我想要你的家伙的意见和经验.如果这些HASH是邪恶的,人们应该知道.

谢谢
:MySQL的HASH怎么样?

sql database postgresql indexing

28
推荐指数
3
解决办法
8911
查看次数

jQuery Focus在firefox上失败了

当我注意到一些非常特殊的东西时,我一直在测试另一个问题.FF4/5无法触发focusjQuery事件.可能被认为是重复的另一个问题已被关闭并被接受而没有真正的答案.

对于问题本身,我尝试了以下简单的代码:

$('#target').focusout(function() {
    $(this).focus();
});
Run Code Online (Sandbox Code Playgroud)

它在Chrome和IE中运行良好,但在FF上失败.这是我们中间懒人的jsFiddle.

谁能解释这种行为?或者它是一个已知的错误?

firefox jquery

24
推荐指数
1
解决办法
2万
查看次数

CSS转换不会被解雇

我正在创建一个DOM元素(div),将其添加到DOM,然后在javascript中快速更改其宽度.这在理论上应该触发CSS3过渡,但结果直接从A到B,没有两者之间的过渡.

如果我通过单独的测试点击事件更改宽度,一切都按预期工作.

这是我的JS和CSS:

JS(jQuery):

var div = $('<div />').addClass('trans').css('width', '20px');
$('#container').append(div);
div.css('width', '200px');
Run Code Online (Sandbox Code Playgroud)

CSS(只需mozilla):

.trans {
    -moz-transition-property: all;
    -moz-transition-duration: 5s;
    height: 20px;
    background-color: cyan;
}
Run Code Online (Sandbox Code Playgroud)

我搞砸了这里,还是"一气呵成"并不是应该做的事情?

所有帮助都非常感谢.

css jquery css3 transitions css-transitions

24
推荐指数
3
解决办法
2万
查看次数

jquery .show('慢')方向?

是否有可能改变jQuery的方向$("selector").show('slow')hide('slow')效果?

我可以定义其他效果的方向,例如幻灯片和剪辑,但是没有显示或选项的选项 hide('slow')

jquery show direction

23
推荐指数
3
解决办法
5万
查看次数

如何删除字符串前后的空格?

我当然有两个字空间,前后有很多空格,我需要做的是删除之前和之后的空格,而不需要介于两者之间.

如何删除之前和之后的空格?

php regex

23
推荐指数
2
解决办法
5万
查看次数

MVC路由如何工作?

所以我开始更深入地研究MVC(真正的MVC,而不是框架MVC),并且我正在尝试开发一个小框架.我正在阅读其他框架,如Symphony和Zend,看看他们是如何完成自己的工作,并尝试自己实现它.

我遇到的地方是URL路由系统:

<?php
namespace Application\Common;

class RouteBuilder {

    public function create($name, $parameters) {
        $route           = new Route($name);
        $route->resource = array_keys($parameters)[0];
        $route->defaults = $parameters["defaults"];
        $notation        = $parameters["notation"];
        $notation = preg_replace("/\[(.*)\]/", "(:?$1)?", $notation);
        foreach ($parameters["conditions"] as $param => $condition) {
            $notation = \str_replace($param, $condition, $notation);
        }

        $notation = preg_replace("/:([a-z]+)/i", "(?P<$1>[^/.,;?\n]+)", $notation);

        //@TODO: Continue pattern replacement!!
    }
}
/* How a single entry looks like
 * "main": {
    "notation": "/:action",
    "defaults": {
        "resource"  :   "Authentication",
    },
    "conditions":   {
        ":action"   :   "(login)|(register)"
    }
}, …
Run Code Online (Sandbox Code Playgroud)

php model-view-controller routes

20
推荐指数
1
解决办法
3万
查看次数

将参数传递给php include/require构造

我已经阅读了很多与我要提出的问题非常相似的帖子,但我只是想确保没有更复杂的方法来做到这一点.任何反馈都非常感谢.

我想创建一种机制来检查登录用户是否可以访问当前正在调用的php脚本.如果是这样,脚本将继续; 如果没有,脚本就会失败,使用类似的东西die('you have no access').

我想出了两种方法来完成这个:

(请假设我的会话内容已编码/工作正常 - 即我调用session_start(),正确设置会话变量等)

  1. 首先定义一个全局变量,然后检查所需头文件中的全局变量.例如:

    current_executing_script.php的内容:

    // the role the logged in user must have to continue on   
    $roleNeedToAccessThisFile = 'r';
    require 'checkRole.php''
    
    Run Code Online (Sandbox Code Playgroud)

    checkRole.php的内容:

    if ($_SESSION['user_role'] != $roleNeedToAccessThisFile) die('no access for you');
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在头文件中定义一个函数,并在包含/要求后立即调用该函数:

    checkRole.php的内容:

    function checkRole($roleTheUserNeedsToAccessTheFile) {
        return ($_SESSION['user_role'] == $roleTheUserNeedsToAccessTheFile);
    }
    Run Code Online (Sandbox Code Playgroud)

    current_executing_script.php的内容:

    require 'checkRole.php';
    checkRole('r') or die('no access for you');
    Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法基本上只是将参数传递给checkRole.php作为include或require构造的一部分?

提前致谢.

php parameters require include

19
推荐指数
2
解决办法
3万
查看次数

长轮询/ HTTP流媒体一般问题

我正在尝试使用创建一个理论上的网络聊天应用程序,我已经阅读了有关长轮询和http流的内容,并且我设法应用了文章中介绍的大多数原则.然而,有两个主要的事情我仍然无法理解.

随着长轮询

  • 服务器如何知道何时发送更新?是否需要不断查询数据库或有更好的方法吗?

使用HTTP Streaming

  • 如何在Ajax连接期间检查结果是否仍处于活动状态?我知道jQuery的successajax调用函数,但是如何在连接仍在进行检查数据?

我会感激任何和所有的答案,谢谢你提前.

php jquery comet long-polling http-streaming

19
推荐指数
2
解决办法
6399
查看次数