我在软件行业工作了两年.让我困惑的一些事情如下:
当前软件行业缺乏数学应用.
例如:当机械工程师设计电线杆时,他通过使用应力分析技术(读取数学方程式)来计算基础上的应力,以确定应该使用何种钢材和钢材等级,但是当软件开发人员部署网络时服务器应用程序,他只是猜测他的服务器上的估计负载,其余的运气和上帝,他没有什么可以用来模拟数学来回答他的问题(我的观察).
伟大的软件(风洞模拟器等)和计算程序(如matlab等)可以模拟现实世界的问题(因为它们有他们的数学方程式)但我们在软件行业仍然无法知道在内存,计算方面有多少实际资源当我们的服务器端应用程序实际部署时,将需要资源,时钟速度,RAM等.我们只是继续猜测解决方案并通过或多或少的"命中和试验"来解决这个问题(我的观察).
编程是在API上进行的,无论是在c,C#,java等中.我们永远无法准确地检查代码的复杂性,从而无法检查效率,因为我们正在使用其他人编写的抽象,其源代码我们要么没有或者我们没有时间检查它.
例如,如果我用C#或java编写一个简单的客户端服务器应用程序,我无法事先计算出这个代码的效率和复杂程度,或整个客户端服务器应用程序需要的最小值(我的观察结果) ).
负载平衡和可伸缩性分析过于模糊,仅在服务器上的请求增加时添加更多节点才能解决(我的观察).
请发布以上任何令人费解的观察结果的答案.请发布相关参考资料.
如果有人证明我错了并且表明正确的方式,我会很高兴.
提前致谢
阿希什
我想了解更多关于温莎城堡的信息,但似乎有点压倒我.我在这里找到了一个代码示例:http://ayende.com/Blog/archive/2007/03/07/Building-the-Policy-Injection-in-40-Minutes-with-Windsor.aspx.它确实很有趣,但它似乎使用了很多额外的代码.我认为政策注入的力量只是我可以制作一些配置文件并注入它并拥有预处理,发布和拦截处理程序?
我有两个文本文件,Source.txt和Target.txt.源将永远不会被修改并包含N行文本.所以,我想删除Target.txt中的特定文本行,并用Source.txt中的特定文本行替换,我知道我需要的行数,实际上是行号2,两个文件.
我有这样的事情:
string line = string.Empty;
int line_number = 1;
int line_to_edit = 2;
using (StreamReader reader = new StreamReader(@"C:\source.xml"))
{
using (StreamWriter writer = new StreamWriter(@"C:\target.xml"))
{
while ((line = reader.ReadLine()) != null)
{
if (line_number == line_to_edit)
{
writer.WriteLine(line);
}
line_number++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我打开Writer时,目标文件被擦除,它会写入行,但是,当打开时,目标文件只包含复制的行,其余的则丢失.
我能做什么?
我有一个Winforms桌面应用程序,它使用相同的接口类型加载多个MEF部件.
问题:当我尝试加载多个相同类型时,我得到以下异常:
构图保持不变.由于以下错误,更改被拒绝:组合产生单个组合错误.根本原因如下.查看CompositionException.Errors属性以获取更多详细信息.
1)没有找到符合约束'((exportDefinition.ContractName ="BOCA.TaskPilot.Common.Extensions.IFolderViewExtension")&&(exportDefinition.Metadata.ContainsKey("ExportTypeIdentity")&&"BOCA.TaskPilot.Common. Extensions.IFolderViewExtension".Equals(exportDefinition.Metadata.get_Item("ExportTypeIdentity"))))',无效导出可能已被拒绝.
导致:无法在部分'TaskPilot.Windows.MainForm'上设置导入'TaskPilot.Windows.MainForm.FolderViewExtension(ContractName ="BOCA.TaskPilot.Common.Extensions.IFolderViewExtension")'.元素:TaskPilot.Windows.MainForm.FolderViewExtension(ContractName ="BOCA.TaskPilot.Common.Extensions.IFolderViewExtension") - > TaskPilot.Windows.MainForm
以下是加载零件的代码:
AggregateCatalog catalog = new AggregateCatalog();
catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
//string myExecName = Assembly.GetExecutingAssembly().Location;
//string myPath = Path.GetDirectoryName(myExecName);
catalog.Catalogs.Add(new DirectoryCatalog(@"C:\Data\TaskPilot\Development\Source\BOCA.TaskPilot.FolderView\bin\Debug"));
catalog.Catalogs.Add(new DirectoryCatalog(@"C:\Data\TaskPilot\Development\Source\BOCA.TaskPilot.TaskView\bin\Debug"));
// Uncomment below line and it works without exceptions raised
//catalog.Catalogs.Add(new DirectoryCatalog(@"C:\Data\TaskPilot\Development\Source\BOCA.FileManager\bin\Debug"));
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
Run Code Online (Sandbox Code Playgroud)
这是每个MEF部分的类代码:
[Export(typeof(IFolderItemsViewExtension))
public partial class TaskTreeView : DevExpress.XtraEditors.XtraUserControl, IFolderItemsViewExtension, IPartImportsSatisfiedNotification]
Run Code Online (Sandbox Code Playgroud)
这是Main表单上使用的Import:
[ImportMany(AllowRecomposition = true)]
private IEnumerable<IFolderItemsViewExtension> TaskViewExtensions = null;
Run Code Online (Sandbox Code Playgroud)
如果我取消注释最后一个Catalog.Catalogs.Add行,则会抛出异常.如果我没有它运行它运行得很好.该行加载实现IFolderItemsViewExtension接口的不同用户控件.我试图加载一个虚拟项目,它拥有的只是用户控件和该接口,我仍然得到相同的异常.无论我做什么,我仍然会得到这个例外.
似乎一切都运行良好,只要我没有加载多个相同类型的MEF部件导出.
这是使用MEF下载的System.ComponentModel.Composistion的最新版本2009.22.10.0.
我正在尝试使用JDO在GAE中保持一对多拥有双向导航的关系.
我手动添加Contact到User类,我希望最终Contact将有一个对父User对象的引用.
org.datanucleus.store.appengine.DatastoreRelationFieldManager.checkForParentSwitch(DatastoreRelationFieldManager.java:204)User对象持久性之后,父引用不会更新.Contact使用密钥从数据存储区检索对象后,不会更新父引用.我不明白我的错误在哪里.
package test;
import java.util.ArrayList;
import java.util.List;
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import com.google.appengine.api.datastore.Key;
public class DatastoreJdoTest extends LocalServiceTestCase {
@Autowired
@Qualifier("persistenceManagerFactory")
PersistenceManagerFactory pmf;
@Test
public void testBatchInsert() {
Key contactKey;
PersistenceManager pm = pmf.getPersistenceManager();
try {
pm.currentTransaction().begin();
User user = new User();
Contact contact = …Run Code Online (Sandbox Code Playgroud) 我正在尝试提高运行速度非常慢的查询的性能.完成实际执行计划后 ; 我发现Clustered Index Seek占82%.有什么方法可以改善Index Seek的表现吗?下面是执行计划中的问题索引查找的图像以及它正在使用的索引和表.
替代文字http://img340.imageshack.us/img340/1346/seek.png
指数:
/****** Object: Index [IX_Stu] Script Date: 12/28/2009 11:11:43 ******/
CREATE CLUSTERED INDEX [IX_Stu] ON [dbo].[stu]
(
[StuKey] ASC
)WITH (PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
表(为简洁起见省略了一些列):
CREATE TABLE [dbo].[stu](
[StuCertKey] [int] IDENTITY(1,1) NOT NULL,
[StuKey] [int] NULL
CONSTRAINT [PK_Stu] PRIMARY KEY NONCLUSTERED
(
[StuCertKey] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, FILLFACTOR = …Run Code Online (Sandbox Code Playgroud) 通过一个教程(Professional ASP.NET MVC - Nerd Dinner),我遇到了这段代码:
public IEnumerable<RuleViolation> GetRuleViolations() {
if (String.IsNullOrEmpty(Title))
yield return new RuleViolation("Title required", "Title");
if (String.IsNullOrEmpty(Description))
yield return new RuleViolation("Description required","Description");
if (String.IsNullOrEmpty(HostedBy))
yield return new RuleViolation("HostedBy required", "HostedBy");
if (String.IsNullOrEmpty(Address))
yield return new RuleViolation("Address required", "Address");
if (String.IsNullOrEmpty(Country))
yield return new RuleViolation("Country required", "Country");
if (String.IsNullOrEmpty(ContactPhone))
yield return new RuleViolation("Phone# required", "ContactPhone");
if (!PhoneValidator.IsValidNumber(ContactPhone, Country))
yield return new RuleViolation("Phone# does not match country", "ContactPhone");
yield break;
}
Run Code Online (Sandbox Code Playgroud)
我已经读过了yield,但我想我的理解仍然有点朦胧.它似乎做的是创建一个对象,允许循环遍历集合中的项目而不实际进行循环,除非并且直到它是绝对必要的.
不过,这个例子对我来说有点奇怪.我认为它正在做的是延迟任何 …
我正在尝试使用xbox360控制器作为openSUSE 11.2中的操纵杆.在尝试编译xboxdrv(http://pingus.seul.org/~grumbel/xboxdrv/)时,我收到以下错误:
g++ -o src/xbox_controller.o -c -g -O2 -Wall -ansi -pedantic src/xbox_controller.cpp
In file included from src/xbox_controller.hpp:23,
from src/xbox_controller.cpp:24:
src/xbox_generic_controller.hpp:30: error: 'uint8_t' has not been declared
src/xbox_generic_controller.hpp:30: error: 'uint8_t' has not been declared
src/xbox_generic_controller.hpp:31: error: 'uint8_t' has not been declared
In file included from src/xbox_controller.cpp:24:
src/xbox_controller.hpp:38: error: 'uint8_t' has not been declared
src/xbox_controller.hpp:38: error: 'uint8_t' has not been declared
src/xbox_controller.hpp:39: error: 'uint8_t' has not been declared
src/xbox_controller.cpp:54: error: variable or field 'set_rumble' declared void
src/xbox_controller.cpp:54: error: 'uint8_t' was …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的十进制数:
62.000,0000000
我需要将该十进制转换为int; 它总是有零十进制数; 所以我不会失去任何精度.我想要的是这个:
62.000
存储在c#中的int变量上.
我尝试了很多方法,但它总是给我一个错误,字符串格式不正确,这是我试过的方法之一:
int.Parse("62.000,0000000");
Run Code Online (Sandbox Code Playgroud)
希望你能帮助我,谢谢.
我准备面试问题不是为了完成家庭作业.关于如何复用非常长的整数有一个问题.任何人都可以用C++提供任何源代码来学习吗?我试图通过学习其他解决方案来改善自己,从而缩小我和他人之间的差距.
非常感谢!
很抱歉,如果您认为这不是提出此类问题的正确位置.
c# ×4
c++ ×1
compilation ×1
filestream ×1
formatting ×1
gcc ×1
ienumerable ×1
jdo ×1
linux ×1
math ×1
mef ×1
navigation ×1
opensuse ×1
sql ×1
sql-server ×1
stream ×1
winforms ×1
xbox360 ×1
yield ×1