编辑:
使用多种语言时如何管理单个任务
在日常任务处理中,您使用多少种不同的编程语言?
- 使用每种语言时,您是否会改变思维方式?
- 您是否对它们进行优先级排序,并将每个任务分别保留在每种语言中。
- 是否根据每个任务在语言/ IDE /环境之间无缝切换的进度分阶段进行编码
- 您是否对所有语言(而不是语法)应用相同的编码样式/惯例?
有关:
编辑:
使用多种语言时如何管理单个任务
在日常任务处理中,您使用多少种不同的编程语言?
有关:
Answers:
今天,我已经编写了Java,Python,C ++和SQL(如果需要的话)。而且我已经工作了不到2个小时。
如果您定期执行此操作,则精神转变可以忽略不计。它与多任务处理无关。就像走了一会儿,然后开车,然后骑自行车,然后游泳一样。没问题,因为它们是顺序的东西。
无论如何,关键是要先完成一项任务再转移到下一项。我倾向于根据具体功能,修复程序等来定义任务。通常该任务仅用一种语言完成,但可能需要其中几种。例如,在使用JNI时,通常会并行更改Java和本机端。
一些答案:
您是否根据每个任务在语言/ IDE /环境之间无缝切换的进度分阶段进行编码
能够在IDE,编辑器和环境之间无缝切换非常重要。通常我会一直保持打开状态。
您是否在所有语言上都应用了相同的编码风格/惯例(不是语法)?
如果这是一个使用两种语言进行交流的接口,则可以-变量名等必须相似。否则,我尝试应用该语言的典型编码样式。
这里形成一个模式:
因此,对我来说,它是:javascript,HTML和CSS,C#,Transact-SQL和Windows Powershell。
不,我根据语言的约定进行编程。一个简单的例子:
// C#
int MyFunction()
{
return 0;
}
// Javascript
function myFunction() {
return 0;
}
使用视觉上不同的编码约定有助于我在各种语言之间进行思维上的转变。相反,如果我的代码在每种语言中看起来都一样,那么我将因忘记使用哪种语言而犯语法错误。
我使用2种语言:c#和python。
我在同一个项目中都使用了它们,但是显然它们用于不同的任务。
当我在处理任务时,我会一直在处理该任务,直到它处于完整状态,或者直到我不能再专心为止。这意味着,如果我必须在两种语言之间进行切换,则几乎没有认知失调,因为当我完成最后一项任务时,我已经会用两种语言进行思考了。
不可否认,当我完成一项任务时,我会稍事休息,这可能会有所帮助。
尽可能少。它通常涉及1. Python,外加2. HTML模板,3. HTML + CSS,有时还包括4. Javascript。从Python切换到JS肯定需要进行精神上的转变,这也是因为我需要使用其他工具。
我将HTML + CSS与HTML模板分开添加,即使它们本身可能不是语言(或它们可能取决于您的宗教信仰),因为它也需要思想上的转变和使用其他工具,尽管还不至于切换到其他语言。 Javascript。从设计角度考虑HTML + CSS,使页面看起来像需要的模型,这与制作HTML模板的想法不同。但是它比Python更正交于Python,而不是Javascript,这意味着我需要将编程思想换成另一种。:)
我每天使用:
我也偶尔使用Python,Java和XML(这算吗?)。我的工作涉及编辑各种网站,这些网站可以用任何一种网络语言(甚至一次使用Perl都可以构建),并使用截然不同的范例/模板(过程,MVC,OOP等)。
要回答这个问题-我主要使用Notepad ++作为列出的前5个IDE,然后使用Visual Studio for Asp.Net。
在每种语言之间快速切换可能会很痛苦-记住您是否在行尾需要分号,或者循环是否带有花括号。从VBScript切换到JScript绝对是最糟糕的-这些文件都以.asp结尾,乍一看看起来非常相似,所以花点时间弄清楚为什么我会出错。
目前,我正在编写Ruby,PHP,Java,C和JavaScript,并且每天至少要写1个小时。主要问题实际上是找到时间,因为它们都是无关项目的时间。
我的工作风格使我喜欢长时间工作。不幸的是,这意味着如果我只穿一件衣服,当我遇到带有一段代码的思维障碍时,要花很长时间才能克服它。我也发现休息也没有帮助。通过让其他项目(尤其是其他语言)在遇到困难时可以切换到原始语言,我立即有了解决方案。
因此,是的,这是一种精神上的转变,我认为这使我的工作效率大大提高。
我使用任务管理器(适用于Android的gTasks),每个项目都有一个单独的待办事项列表。如果一个项目需要多种语言,那么我不会将它们分开。这通常是因为它们将以某种方式密切相关。例如,JavaScript和Ruby用于完成一些AJAX任务。如果从技术上讲这些语言是用于同一项目的,但是该项目太大,以至于它们基本上无关,那么我可能会将它们视为单独的项目。
通常,我的优先级是“任务最多的列表”,但是如果遇到问题,我将始终切换。
有点混合:
另外:对我来说最大的挑战实际上是在样式语言之间切换。在与Ruby一起对SASS进行编码时,随后必须切换回CSS来进行其他所有工作,这是非常困难的。在较小程度上,我对HAML / HTML和JSON / XML有相同的问题。
我为ISP方面编写应用程序,还有一种“做自己喜欢的事情”的文化,通常是由许多从事编程工作的网络工程师编写的。我必须每周处理写得非常好,非常恐怖的程序。我经常会遇到的工作
公司中还有其他语言(.net,VB,Phyton,Rails等),但是我还没有使用这些语言...。
编辑的编辑 ...
当您在不同语言之间工作时,您确实必须转变思维。最常见的是语法。我准备了一些参考书。我会发现大约需要半小时才能回到另一种语言的思维模式。语言的语法越模糊,转换的时间就越长。我发现,如果我有一段时间没有接触过Perl,从执行Java到执行Perl的转换可能花费的时间最长。您做得越多,越容易获得。
这实际上取决于如何定义工作方式。...我每天都使用C#开发Microsoft Surface应用程序。Java我也每天都在Android应用程序中使用Java。但是我尝试进行自我教育,并开始使用R,Ruby和Objective-C。有时我还需要一些SQL,如果您在问题中包含脚本语言和其他语言,则还需要JavaScipt,SPARQL和BeanShell。
我尝试遵循每种语言的编码约定,但是特别是在Java和C#之间,由于花括号和C#中的大写方法命名,我遇到了一些困难:
public void test() {
...
}
与
public void Test()
{
...
}
.equals
在javascript中比较Strings与。至少我总是那样出错,而不是==
在Java中使用。