Tag: 架构

在JavaScript代码组织中常用的最佳实践

随着jQuery等JavaScript框架使客户端Web应用程序更丰富,更实用,我开始注意到一个问题… 你如何保持这种有组织的? 把所有的处理程序放在一个地方,并为所有的事件写function? 创build函数/类来包装所有的function? 写得像疯了一样,只是希望它最好的工作? 放弃并获得新的职业? 我提到了jQuery,但它通常是任何JavaScript代码。 我发现随着线条的堆积,你将很难pipe理脚本文件或find你要找的东西。 我发现的最大的问题是有很多方法可以做同样的事情,很难知道哪一个是目前普遍接受的最佳实践。 是否有任何一般的build议,以保持您的.js文件作为您的应用程序的其余部分一样漂亮和整洁的最佳途径? 或者这只是IDE的问题? 那里有更好的select吗? 编辑 这个问题的目的是更多地关于代码组织,而不是文件的组织。 有一些非常好的合并文件或分割内容的例子。 我的问题是:什么是目前普遍接受的最佳实践方式来组织你的实际代码? 什么是你的方式,甚至推荐的方式来与页面元素进行交互,并创build不会相互冲突的可重用的代码? 有些人列出了名字空间 ,这是一个好主意。 什么是其他方式,更具体地处理页面上的元素,并保持代码组织和整齐?

单页应用:优点和缺点

我读过关于SPA和它的优点。 我发现他们中的大多数不能令人信服。 有三个好处,引起我的怀疑。 问题: 你能否作为SPA的倡导者,certificate我对前三句话的错误? === ADVANTAGES === 1. SPA非常适合非常敏感的网站: 服务器端渲染很难实现所有的中间状态 – 小视图状态不能很好地映射到URL。 单页面应用程序的特点是能够重画UI的任何部分而无需往返服务器来检索HTML。 这是通过将数据与数据表示分离来实现的,具有处理数据的模型层和从模型读取的视图层。 拿着非SPA的模型图层有什么问题? SPA是否是唯一与客户端MVC兼容的体系结构? 2.使用SPA,我们不需要额外的查询服务器来下载页面。 哈,用户在访问您的网站时可以下载多less页? 二三? 相反,会出现另一个安全问题,你需要将你的login页面,pipe理页面等分成不同的页面。 反过来又与SPA架构冲突。 可以有其他的好处吗? 别听任何其他的.. === DISADVANTAGES === 客户端必须启用JavaScript。 只有一个入口点的网站。 安全。 PS我从事过SPA和非SPA项目。 我正在问这些问题,因为我需要加深我的理解。 没有意思伤害SPA支持者。 不要要求我多阅读一下SPA。 我只是想听听你的考虑。

如何版本控制数据库中的logging

假设我在数据库中有logging,pipe理员和普通用户都可以进行更新。 任何人都可以提出一个好的方法/体系结构如何版本控制这个表中的每一个变化,所以有可能回滚一个logging到以前的版本。

创build一个通用的存储库与每个对象的特定存储库的优势?

我们正在开发一个ASP.NET MVC应用程序,现在正在构build资源库/服务类。 我想知道是否有任何创build一个通用的IRepository接口,所有的存储库实现,与每个存储库有其自己独特的接口和方法集有什么大的优势。 例如:一个通用的IRepository接口可能看起来像(取自这个答案 ): public interface IRepository : IDisposable { T[] GetAll<T>(); T[] GetAll<T>(Expression<Func<T, bool>> filter); T GetSingle<T>(Expression<Func<T, bool>> filter); T GetSingle<T>(Expression<Func<T, bool>> filter, List<Expression<Func<T, object>>> subSelectors); void Delete<T>(T entity); void Add<T>(T entity); int SaveChanges(); DbTransaction BeginTransaction(); } 每个存储库将实现这个接口,例如: CustomerRepository:IRepository ProductRepository:IRepository 等等 我们在之前的项目中采用的替代scheme是: public interface IInvoiceRepository : IDisposable { EntityCollection<InvoiceEntity> GetAllInvoices(int accountId); EntityCollection<InvoiceEntity> GetAllInvoices(DateTime […]

Cmacros定义来确定大端还是小端?

是否有一行macros定义来确定机器的字节顺序。 我正在使用下面的代码,但将其转换为macros将太长。 unsigned char test_endian( void ) { int test_var = 1; unsigned char test_endian* = (unsigned char*)&test_var; return (test_endian[0] == NULL); }

注销:GET还是POST?

这个问题不是关于什么时候使用GET或POST; 它是关于哪个是推荐的处理Web应用程序的注销。 从一般意义上,我发现GET和POST之间的区别很多,但是我没有find这个特定场景的明确答案。 作为一个实用主义者,我倾向于使用GET,因为实现它比POST更简单; 只需放下一个简单的链接,就完成了。 这似乎是我能想到的绝大多数网站的情况,至less从我的头顶来看。 即使堆栈溢出处理注销与GET。 让我犹豫的事情是,尽pipe有些networking加速器/代理通过检索页面中的每一个链接来预caching页面,但是当用户点击页面时会得到更快的响应。 我不确定这是否仍然适用,但是如果是这样的话,那么从理论上讲,一旦用户login,带有这些加速器之一的用户就会被踢出应用程序,因为她的加速器会find并检索注销即使她从来没有点击过它的链接。 到目前为止,我读过的所有东西都表明POST应该用于“破坏性行为”,而不会改变类似应用程序查询等内部状态的行为应该用GET来处理 。 基于此,这里真正的问题是: 注销被认为是破坏性行为的应用程序/它是否会改变应用程序的内部状态?

线程与线程池

使用新线程和使用线程池中的线程有什么区别? 有什么性能优势,为什么我应该考虑使用池中的线程,而不是我明确创build的线程? 我在这里专门讨论.NET,但一般的例子都很好。

C状态机devise

我正在用混合C和C ++编写一个小项目。 我正在build立一个小型的国家机器在我工作线程的中心。 我想知道你们的专家是否会分享你们的状态机devise技术。 注意:我主要是经过testing和实施的技术。 更新:基于所有收集的伟大意见,我已经解决了这个架构:

标准委员会关心的异国build筑

我知道,C和C ++标准留下了语言实现的许多方面 – 定义只是因为如果有一个具有其他特性的体系结构,编写一个标准的兼容编译器是非常困难或不可能的。 我知道40年前任何一台电脑都有自己独特的规格。 但是,我不知道今天使用的任何架构: CHAR_BIT != 8 signed是不是二补(我听说Java有这个问题)。 浮点不符合IEEE 754(编辑:我的意思是“不在IEEE 754二进制编码”)。 我问的原因是,我经常向人们解释,C ++没有强制要求像固定大小types那样的其他低级方面。 这很好,因为与其他语言不同,它使得你的代码在正确使用的时候是可移植的(编辑:因为它可以移植到更多的架构,而不需要仿真机器的低级方面,比如像符号+量级架构上的二进制补码algorithm) 。 但我感到不好意思,我不能指出任何特定的架构。 所以问题是:什么样的架构展现出上述特性? † uint*_t s是可选的。

Android中使用的SQLite版本?

Android中使用的SQLite版本是什么? 原因:我想知道如何处理模式迁移。 较新的SQLite版本支持“ALTER TABLE”SQL命令,这将节省我不得不复制数据,删除表,重新创build表和重新插入数据。