我需要为客户编写一个小工具,以便在Windows 98上运行.由于这是一个非常小的项目,我希望我可以避免使用本机C++并使用C#.
在.NET Framework 2.0的下载声称支持Windows 98中是否有任何警告或提高警惕需要注意在安装或编码的时候?
我偶尔不幸有需要修改,很旧,差的 不是记录并不佳 不是设计的代码.
通常需要花费很长时间才能进行简单的更改,因为现有代码的结构并不多,而且我真的必须先阅读大量代码才能了解事情的发展方向.
我认为在这种情况下会有很多帮助的工具可以让人们可以看到代码的概述,然后甚至可以深入了解更多细节.我怀疑这样一个工具很难做对,因为它试图找到很少或没有的结构.
我想这不是一个真正的问题,而是一种沉思.我应该把它变成一个问题 - 其他人做了什么来帮助他们了解其他人的代码,好的和坏的?
在我目前的工作地点,我们有一些令人震惊的代码被吹捧为下一代框架.
事实上,这个意见中只有一个人就是那个写了大部分内容的人.该部门的其余部分给人的印象是编码错误,调试的皮塔饼和一般的naff.
写这篇文章的人对管理层有着相当有影响力的地位,所以他们就在营地的那一边.
我们已向管理层强调(真实)关注,但显然他们不愿意花更多时间参与一个不直接有助于提高利润的项目.
在此框架上部署了多个应用程序,因此任何重构都需要包含这些应用程序.
整个事情是如此交织在一起,以至于我们不能扯掉特定类的实现并以这种方式重写它,因此即使对核心api进行简单的更改也意味着一个大型项目.
然而,它确实有3年的实时部署和许多错误修复,角落案例和边界条件迎合.
我们是否重写部分并尝试重构,因为它将是几个大型项目,随着时间的推移重构,可能需要另外3年才能完成它或我们只是在现有的基础上重写我们的特定要求框架?
我知道它是在IBM 360大型机架构上实现的,但是有谁知道特别使用了哪些语言?据推测,其中大部分是在3-4个月内编程和部署的 - 这对任何项目来说都是一个非常快速的转变,更不用说有能力监控整个经济的项目了.我部分地认为它可能已经在APL中实现了,因为IBM 360连接并且因为它似乎很适合快速开发这样一个系统所需的那种抽象.有没有人知道更多事实?
我目前正在为遗留应用程序构建CI构建脚本.有可用的零星JUnit测试,我将把所有测试的JUnit执行集成到CI构建中.但是,我想知道如何处理我在非维护的JUnit测试中遇到的100'失败.我是:
1)评论它们,因为它们似乎在其中具有合理的,如果没有维护的业务逻辑,希望有人最终取消注释并修复它们
2)删除它们,因为不太可能有人会修复它们,注释掉的代码只会被忽略或者变得杂乱无章
3)追踪那些把这个烂摊子留在我手中的人,并用代码的打印件将其打在头上(由于长方法气味将足以适合任务),同时宣扬维护良好的和单元测试代码库
我最近被分配了一个项目来进一步开发现有的代码库.代码不包含任何测试,甚至不包含任何一行注释.整个"事物"是以一种非常模糊的方式编写的,因此需要花费大量时间来弄清楚会发生什么.
你通常如何解决这类问题?关于如何处理这种情况的提示和三折?
我有一个很大的代码库,几乎每个文件都没有正确对齐,变量或方法之间的间距差,或者只是丑陋的代码.
我希望在使用它时能够做得更好,但修复缩进等事情会使提交历史变得非常难看.
我不是在谈论小的缩进问题,其中一行是一个空格,我说的是类似的东西
class Xyz
def foo
end
def bar
@something
end
end
Run Code Online (Sandbox Code Playgroud)
在保持历史相关性的同时,清理这样的代码有什么好方法?我是否应该立即自动对齐所有内容并执行一次大量提交?
我正在使用2003年的一些代码.有一个对以下类的引用:
new com.sun.net.ssl.internal.ssl.Provider()
Run Code Online (Sandbox Code Playgroud)
它导致错误:
Access restriction: The type Provider is not accessible due to restriction on required library /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib/jsse.jar
有没有人对使用这个类的合适替代方案有任何建议?
我正在尝试将Laravel慢慢集成到一个遗留的PHP应用程序中.其中一项任务是在用户登录旧应用程序时自动注册Laravel用户会话.我不是想实现Laravel身份验证,我真的只想捎带现有功能并强制特定用户登录而不检查凭据.到目前为止,我所发现的是从我发现的其他人的黑客中拼凑而成的:
// Laravel authentication hook - Boostrap application
require_once getcwd() . '/../laravel/bootstrap/autoload.php';
$app = require_once getcwd() . '/../laravel/bootstrap/app.php';
$kernel = $app->make('Illuminate\Contracts\Console\Kernel');
$kernel->bootstrap();
$app->boot();
// Start Laravel session
$request = Illuminate\Http\Request::capture();
$response = $app->make('Symfony\Component\HttpFoundation\Response');
$startSession = new Illuminate\Session\Middleware\StartSession($app['session']);
// Associate server session with the authenticating user id
// I have also tried loading user model instance and then $app['auth']->login($user)
$app['auth']->loginUsingId($user_id);
$app['session']->driver()->start();
// Terminate middleware response chain with naked response
$response = $startSession->handle($request, function() use($response) {
return $response; // This response will …Run Code Online (Sandbox Code Playgroud) 免责声明:鉴于这个问题,这可能不是最佳解决方案,但我很好奇如何实现这一实施.
问题我正在尝试处理一些遗留代码,这些代码的单例定义如下:
public class LegacySingleton {
private static Boolean value;
public static void setup(boolean v) {
if (value != null) {
throw new RuntimeException("Already Set up");
}
value = v;
System.out.println("Setup complete");
}
public static void teardown() {
value = null;
System.out.println("Teardown complete");
}
public static boolean getValue() {
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
我无法更改此设计,并且在整个代码库中大量使用该类.此单例返回的值可以极大地改变代码的功能.例如:
public class LegacyRequestHandler {
public void handleRequest() {
if (LegacySingleton.getValue()) {
System.out.println("Path A");
} else {
System.out.println("Path B");
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我想要代码Path A,那么我必须以 …
legacy ×10
java ×3
php ×2
.net ×1
.net-2.0 ×1
apl ×1
classloader ×1
frameworks ×1
git ×1
git-commit ×1
junit ×1
laravel ×1
laravel-5.4 ×1
legacy-code ×1
mainframe ×1
maintenance ×1
provider ×1
refactoring ×1
ssl ×1
static ×1
windows-98 ×1