我更喜欢编码标准是合乎逻辑的.这是我为什么以下一套标准没有的论点.
我需要知道以下两件事之一:(1)为什么我错了,或者(2)如何说服我的团队改变它们.
camelCase:函数,类名,方法和变量必须是camelCase.
例:
$customerServiceBillingInstance = new customerServiceBillingInstance(); // theirs
$customer_service_billing_instance = new CustomerServiceBillingInstance();
Run Code Online (Sandbox Code Playgroud)
函数/方法必须始终返回一个值(并且必须始终存储返回的值).
这出现在我们的数百个php页面上:
$equipmentList = new equipmentList();
$success = $equipmentList->loadFromDatabase(true, '');
$success = $equipmentList->setCustomerList();
$success = $equipmentList->setServerList();
$success = $equipmentList->setObjectList();
$success = $equipmentList->setOwnerList();
$success = $equipmentList->setAccessList();
Run Code Online (Sandbox Code Playgroud)
返回值很少使用,但始终存储.它鼓励使用复制粘贴.
没有静态方法
类似下面的行在代码库中出现了数千次:
$equipmentList = new equipmentList();
$success = $equipmentList->loadFromDatabase();
Run Code Online (Sandbox Code Playgroud)
我会比较喜欢:
$equipmentList = equipmentList::load();
Run Code Online (Sandbox Code Playgroud)
有什么理由不使用静态方法或属性?不是静态方法负责非特定于实例的逻辑吗?像初始化或填充新实例一样?
除非一切都返回一个对象,否则您的代码不是OOP
有一段代码执行查询,检查几种错误方式,然后处理生成的数组.它被重复(复制+粘贴)几次,所以我把它放在基类中.然后我被告知返回一个数组不是OOP.
你如何捍卫这些做法?我真的需要知道.我觉得我正在服用疯狂的药片.
如果你不能为他们辩护,你如何说服他们需要改变的坚定作者?
可能重复:
C++:如何拆分字符串?
分裂一个字符串
在c ++中用空格分割字符串的最佳方法是什么?
我希望能够根据制表符,空格等拆分它,当然也可以忽略多个制表符/空格/等.连续,并没有在最后有这些事情的问题.
最后,我最终将它存储在一个向量中,但如果有一些简单的内置标准库分割方法,我可以轻松地在数据类型之间进行转换.
我在使用g ++的UNIX机器上构建它,而不是使用Microsoft Visual C++
在ASP.Net中有app_data文件夹,用户无法通过网络访问该文件夹.我想在此文件夹中存储一个文件,并使用App_Code文件夹中的类从该文件中读取.
请记住,此处的当前工作目录将是一个目录,例如"c:\","c:\ windows\system32 \"等,而不是应用程序目录.所以像"../App_Data/somefile"这样的东西不起作用.
必须有一些简单的东西,我忽略了如何以编程方式访问App_Data文件夹中的文件
我怎样才能做到这一点?
如何按长度排序数组,然后按字母顺序排序?
我有一个带有数字的东西列表,我现在得到:
Something1 Something10 Something2 Something3
虽然我想得到:
Something1 Something2 Something3 Something10
我想必须有一些方法来使用反射来做我想做的事情.
我需要能够在运行时获取某个类的字符串,例如:
string s = "mypackage.MySuperClass"
Run Code Online (Sandbox Code Playgroud)
然后我可能有某种类型的对象.它可能是以下之一:
mypackage.MySuperClass obj = new mypackage.MySuperClass();
Run Code Online (Sandbox Code Playgroud)
要么
mypackage.MySubClass obj2 = new mypackage.MySubClass();
Run Code Online (Sandbox Code Playgroud)
要么
someotherpackage.SomeOtherClass obj3 = new someotherpackage.SomeOtherClass();
Run Code Online (Sandbox Code Playgroud)
我需要做的是查看一个对象(它的类型是在运行时确定的)是否等于字符串s(它也是在运行时通过完全不同的方式确定的).
在上面的例子中,我希望obj和obj2与s的类型相同(因为MySubClass是MySuperClass的子类),obj3不会.
在java中有一种简单的方法吗?可能是使用instanceOf的东西?
我想在PHP类中定义一些构造函数.但是,我的构造函数代码目前非常相似.如果可能的话,我宁愿不重复代码.有没有办法从php类中的一个构造函数中调用其他构造函数?有没有办法在PHP类中有多个构造函数?
function __construct($service, $action)
{
if(empty($service) || empty($action))
{
throw new Exception("Both service and action must have a value");
}
$this->$mService = $service;
$this->$mAction = $action;
$this->$mHasSecurity = false;
}
function __construct($service, $action, $security)
{
__construct($service, $action); // This is what I want to be able to do, so I don't have to repeat code
if(!empty($security))
{
$this->$mHasSecurity = true;
$this->$mSecurity = $security;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过创建一些Init方法来解决这个问题.但有没有办法绕过这个?
我试图优化我的mysql表一点点,以便有一个稍微更易于管理的表.我想将用户权限存储在位字段中.
例如,用户权限可能是0110(我的用户权限越来越多,所以这个长度可能会长一些)
该示例可能对应于以下内容:
0:用户无法在网站上发布新闻1:用户可以在网站上发布新文章1:用户可以编辑网站上的任何文章0:用户无法从网站上删除文章等(其他权限)
如果我将它存储在mysql位字段中.我怎样才能在PHP中操作它?
例如,在PHP中有一种简单的方法来获取第3位并查看它是0还是1?
有没有一种简单的方法可以将第3位设置为0或1?
我有一个html页面,我正在转换为asp .net页面.此页面包含一个访问我无法控制的外部网站的表单.下面有一些示例代码:
<asp:Content ID="sample" ContentPlaceHolderID="body" Runat="Server">
<form name="Subscribe" method="post" action="http://anexternalwebsitehere.com/subscribe.asp">
<input type="text" name="email" size="45" maxlength="120" />
<input type="submit" name="submit" value="Subscribe" />
</form>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
表单比我提供的示例更复杂,但它大致了解了我需要转换的内容.这是我遇到的问题.
如果我按原样保留: 当您单击提交按钮时,您将回发到当前页面而不是外部页面
如果简单地将所有内容转换为asp表单控件并更改回发网址: id会变成一些令人费解的"ctl00_body_ctl00",外部页面无法解释.
注意:我确实需要该页面是一个aspx页面,因为我在页面上使用其他内容的母版页.
附加说明:这不是Microsoft MVC.
我错过了什么?
我正在努力让Selenium RC启动并运行在我的网站上进行一些自动化测试.我发现我一直想验证我没有破坏任何功能,手动测试开始变得无聊.
但是,我似乎无法让Selenium RC与WaitForPageToLoad一起使用.
我尝试复制他们在selenium文档中给出的基本示例,但测试总是卡在:$ this-> waitForPageToLoad("30000"); 我可以看到它在窗口中显示的距离很远,并且页面似乎已正确加载(我们在谷歌搜索结果页面).但测试失败并超时.
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
/**
* Description of Test
*
* @author brian
*/
class Test extends PHPUnit_Extensions_SeleniumTestCase {
function setUp() {
$this->setBrowser("*safari");
$this->setBrowserUrl("http://www.google.com/");
}
function testMyTestCase() {
$this->open("/");
$this->type("q", "selenium rc");
$this->click("btnG");
$this->waitForPageToLoad("30000");
$this->assertTrue($this->isTextPresent("Results * for selenium rc"));
}
}
Run Code Online (Sandbox Code Playgroud)
更有趣的是,如果我在等待时刷新页面,一切都会按预期继续.因此看起来似乎waitForPageToLoad没有意识到页面已经加载.
php ×4
asp.net ×2
java ×2
arrays ×1
c++ ×1
coding-style ×1
constructor ×1
mysql ×1
oop ×1
reflection ×1
selenium ×1
selenium-rc ×1
sorting ×1
string ×1
xhtml ×1