Questions tagged «web-development»

Web开发是为World Wide Web或Intranet开发网站所涉及的工作的广义术语。



3
JavaScript和Web编程的范式转变
如果我没记错的话,曾经有一段时间人们不赞成使用JavaScript进行Web开发,因为除其他因素外,这是用户的隐私和安全问题,有些人对此一无所知。 如今,您几乎看不到不使用JavaScript的主要网站,并且如果没有JS,许多网站将完全无法正常工作,因此请不要随意降级。要么如此,要么可用性会受到严重影响,例如在SE网站上。 从那时到现在,发生了什么变化,从而使JavaScript在Web开发中几乎无处不在?还是我断言JS对我的想象力fig之以鼻,而且一直都是这样?

4
将Web应用程序直接从SVN部署到生产环境是否可以接受
题 是否有合理的理由不使用SVN进行生产部署,或者这仅仅是个人喜好而没有针对SVN的真实案例? 背景 我的工作场所具有在SVN中标记发布的文化,然后使用(svn co或svn switch直接包括)将这些发布直接部署到各种Web服务器。 我个人对此有一个问题,因为我相信如果不使用构建和部署脚本,某种形式或自动部署,就会丢失集成环境设置,因为它们没有文档说明。然而,不仅如此,我有一种直觉,认为这样做可能存在隐藏的危险,而这种危险尚未被抬起头来。 我已经向负责将代码部署到我们的各种环境(阶段,预生产,生产)等中的运营人员提出了自己的担忧。他们的观点几乎是到目前为止效果很好,没有理由进行更改。 编辑: 我的意思是关于构建和部署: 例如,如果开发人员需要为特定环境添加web.config设置。Web.config通常不保存在svn中,因此无需任何形式的自动构建脚本即可手动更新这些文件。因此,如果它们丢失或OPS忘记为发行版在web.config中添加字段,则可能会遇到问题。 可以使用XMLPoke自动生成适合于特定环境的web.config的构建脚本非常理想,因为您有一个可版本化的脚本,该脚本记录了每个环境所需的所有更改。 当前的构建和部署方法 对于有问题的项目,开发人员可以手动构建发行版,而其他项目则可以使用NANT或MSBuild将构建步骤自动化。 对于大多数项目,数据库迁移是通过DB脚本,迁移脚本(Migrator.NET)或CMS程序包进行的。 CI通常是由Team City在每次签入的基础上完成的,我们有一个代码审查过程,所有票证都在分支机构中完成,然后在进入中继线之前进行同行审查,以确认其有效性和正确性/质量(运作良好)。 但是,实际的代码部署几乎总是通过SVN来进行,或者是通过签出带标记的版本,或更通常是通过SVN Switch来进行。在我们使用存储库作为部署过程的一部分时,这让我感到奇怪。 配置通常不会经常更改,配置文件中唯一会发生的事情就是特定于环境的信息。其他所有内容都在数据库中。 不要误会我的意思,这行之有效。但是,我想尝试推动自动化的构建和部署。我已经在Rails和Capistrano以及用于Cygwin,Nant和SSH的个人项目中使用了它。 更重要的是,我需要非常具体的有效参数来使我的同事转变为使用自动生成和部署。 还是没有真正的有效论据反对使用SVN专门部署到生产环境?

4
理想的HTML5 Web应用程序是否有任何限制
让我们假设以下两个假设是正确的。 您的整个用户群到处都有宽带访问 有一个假想的浏览器X,它始终实现HTML5和WHATWG组的整个规范草案,所有用户都使用浏览器X。 我们需要商业公共桌面应用程序用于商业公共HTML5 Web应用程序的固有限制是什么? 我对无插件Web应用程序的局限性感兴趣,这些应用程序既不依赖Flash / Java / SilverLight / etc桥提供额外功能,也不依赖浏览器插件提供额外功能。 不适用的可能限制: 数据库?我们有WebSQL和indexedDB。 文件IO?我们有HTML5 File API,它可以读写。 速度?在最近的JavaScript引擎竞赛中,浏览器不再缓慢。本机C ++仅比chrome的V8引擎快3倍。 开发工具?网络已经成熟,并且有大量可用的工具可供选择。 封闭源?是的,所有代码都是开源的。这是一把双刃剑,对于使用封闭源代码或开放源代码有很多意见。我个人认为开放源代码的优点胜于缺点。 JavaScript / HTML5?诸如“我个人认为HTML5和EcmaScript是可怕的开发平台”之类的争论不计在内。 已知限制: 实时/安全(最高机密)关键代码不属于网络,也不属于网络。它需要使用低级,高度可控的语言(例如C或C ++)编写。 任何需要与计算机上连接的外部第三方硬件交互的工具,都很难与Web应用程序通信。 还有一整套不属于网络的程序。操作系统,驱动程序,服务器软件,低级API。我知道这一点,但是我没有将它们归类为“商业公共”应用程序,这些是可以预先安装在计算机上的软件类型。 顺便说一句,我知道这两个假设非常不现实,但我们可能会在5/10/20/30年内实现它们。我对应用程序的类型以及使它们与网络完全不兼容的应用程序功能感兴趣。 动机: Google应用 Microsoft Office365 Web应用程序列表 Adobe鸟舍 要点: 考虑到桌面应用程序是有效解决方案的一系列问题。 为什么Web应用程序不是有效的解决方案? 如何确定我是否可以使用Web应用程序作为解决方案。 我试图通过断言它们不存在来消除Web应用程序的主要困难(互联网连接和浏览器支持)。 此外,HTML5脱机应用程序和Modernizr有望解决这两个问题。 Web应用程序开发还有哪些其他困难?

5
使用Web的PHP开发时,Linux给我带来什么好处?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我将与一个朋友开始一个大型的PHP项目。这是我第一次使用PHP,我一直想知道是否应该尝试在Linux上进行开发,因为它是如此流行。 我曾经在Linux上有过一些经验,自从我知道vim以来,选择编辑器就很容易了(尽管我看过VS.PHP并让我从更改中退缩了)。 在开发PHP(或任何网络语言)时使用Linux是否有优势?

5
将RESTful设计应用于整个网站?
这一切可能都碰到了新事物,但是我正在努力设计一个完全RESTful的网站。我了解将RESTful设计应用于用户,照片,博客帖子等内容,因为我认为它们就像“对象”。 但是,关于“关于我们”页面呢。那是什么资源?从RESTful的意义上来说,它甚至是一种资源吗?另外,说我去URL“ http://www.example.com/”,我要什么资源?索引资源?

6
如何解决不可复制/随机发生的错误?
我们有一个多语言网站,几天前在其中发现了一个错误。它以其他语言显示其他语言数据,并且还选择了英语之类的混合数据,但同时还在页面中显示其他语言数据,反之亦然。它很少执行此操作,但是它存在于网站中。遍历代码也无济于事,因为这种情况并非总是如此。 有什么建议可以及时发现问题?我在这里要求策略。

4
使用哪个基于Java的Web ui框架?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 便门 请点击 GWT 瓦丹 据我了解,这些框架都允许使用Java创建GUI组件(具有其所有优点),而无需执行大量的html / javascript。 除了考虑技术因素之外,我还想知道是否有任何一种正在迅速普及。是一个特定的框架正在成为包的领导者,这也会影响决策。

2
面包屑仍然是浏览网站和Web应用程序的可行方法吗?
我目前正在处理以下类型的网站和应用程序: 像亚马逊这样的电子商务 预订系统(例如酒店接待员检查房间的可用性) 发票管理(如Freshbook) 在亚马逊上,我没有发现任何面包屑,只是左侧面板上的刻面。但是,newegg同时使用了面包屑和构面。 在诸如酒店预订或发票管理之类的管理系统中,您通常会通过系统搜索唯一的预订或客户编号。然后,每个保留可以扩展到更多部分,例如: Reservations > Reservation #123456 > Guests > Room > Airport pickup > Payment 在每个唯一的预订页面中,我使用面包屑来显示当前页面相对于站点的位置。这是呈现此类信息的好方法吗?我应该使用标签页还是其他技术?

7
是否可以与不信任的客户合作[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 8年前关闭。 我们的一位初级开发人员已分配了一个新客户(我们还没有该客户,我们仍在与他合作,看我们是否能够满足他的需求),该初级开发人员说,如果我们能够,客户将雇用我们在不访问服务器的情况下完成他的项目。 我与客户进行了直接交谈,该客户原来是被他外包的一家离岸公司偷走了他的代码。这让我更加同情,但对此我仍然有不同的感觉。 一方面,我想向客户证明我们并非都是坏苹果。同样,如果我们与他一起做得很好,我们将得到一位忠实的客户,他将雇用我们从事他的所有项目。我之前从未听说过这种情况,但我想它发生的频率比我们所有人都想承认的要高。 另一方面,我很犹豫接受与他一起工作,因为部署时间将是一场噩梦,而且在我的职业或教育领域,没有人会教我如何与像他这样的客户一起工作。我(或初级开发人员)将不得不写一份确切的说明来详细说明如何使用源来部署它,而当我自己一个小时内就可以部署和测试整个事情时,这是一个烦人的负担。 就像我说的那样,我以前从来没有处理过这个问题(我们正在签署保密协议,但显然我们面前的离岸公司也是如此)。我们还没有被完全预订满,所以好像我不能马上就任,但是我们也不求工作,我想知道在这样的受限环境下工作是否值得麻烦。 另一面是,这种经验本身可能会给我们带来好处,但它值得拥有,因为在不久的将来甚至有可能获得相似的客户。我们甚至期望遵守这些客户吗? 因此,由于我对此没有任何亲身经历,而且绝对不在学校学习,因此那些与客户合作经验较长的人将如何与这样的不信任客户打交道?你会接受这份工作吗?

5
对您来说,软件是“可用源”而不是“开源”对您来说是否重要
您可能知道OSI正式批准的开源许可证列表。最值得一提的是,我猜应该是GPL,MIT,[在此处插入您喜欢的许可证]。 我最近遇到了一个项目,该项目虽然是开源的(创建者提供了所有源代码),但在其中一个正式许可下并不是正式开源的。 它发布了源,但没有承诺将来发布源。 它允许修改建议,但不承诺接受补丁程序,并且不允许外部分发外部补丁程序版本。 它允许在商业或付费项目中使用该软件,但不允许出售该软件本身。 我想我们可以将其称为“可用资源”,而不是开放源代码。 我可以看到为什么公司的管理团队不想使用此软件开展业务。他们不能分叉,不能出售,也不能创建自己的软件版本来分发或出售。 但是,作为仅使用此软件的软件工程团队的一部分,这对您来说重要吗?我仍然可以用它来完成工作,可以在有偿的项目中使用它(但是我不能出售软件本身,无论如何我都不会从事这项工作),并且我可以对代码进行更改以使其行为能够满足我的需要(但我不能公开这些修改),如果我确实希望将这些修改正式提供给其他人,则批准取决于项目本身,他们选择是否是否将它们合并到正式版本中。 因此,我们知道,一家公司希望基于此“可用源”软件来开展业务,但是不能做到这一点,但是作为软件工程团队中的某个人,这些差异对您来说是否重要,或者它们似乎无关紧要? 很好奇别人对此的看法。

2
定价产品的数据库架构(打包,促销,基于数量,限时提供…)
我正在为一家公司提供新的销售点,该公司根据产品组合提供不同的价格。 所有产品都有底价。 为了解释我的问题,我将使用以下信息: Product Category Price A 1 45 B 1 70 Q 2 20 R 2 27 S 2 15 X 3 17 Y 3 22 Z 3 16 该公司有Packages,例如Package“ Combo”:对于产品A或B,如果选择Q或R中的1个以及X,Y或Z中的1个,则可享受$ 20的折扣。 案例A:有时客户在下订单时会添加基本产品,例如:他们不使用产品A,而是在其中添加产品Q和产品P以创建打折的包装。然后,他们可能会补充说,他们想要1个具有1 R和1 Z的乘积B。 情况B:有时客户会添加1 A和2 B,2 Q,1 S,2 X和1Z。根据“组合”程序包规定的规则,由于S不是组合项目,因此仅适用2个组合。 其他促销取决于数量,因此,如果您购买2件B,您将获得20%的折扣和/或取决于时间,该促销仅在下午5点之后有效,或者如果在上午10点之前折扣10%之前有效。另一个促销活动可能取决于您上次购买的时间或您在Y时间范围内的购买金额是否超过$ X。 我的问题: 1)如何构造表,以便以非常灵活的方式创建不同的包装或促销以添加具有不同要求的不同类型的促销? 2)当他们像案例B(或案例A和案例B的混合商品)那样订购时,如何构造查询,以便测试订单中有哪些商品组合,并相应地更新价格/说明?最终,此查询的最佳结果将返回满足要求的包装和促销,从而给客户带来最大的利益(即,他们订购的产品满足促销1和促销3的要求,但是促销3的价格更低。必须与多个促销一起使用)。 先谢谢您的帮助! 更新1 为了更好地描述手头的问题并更新迄今为止为解决这些问题而完成的工作,我将产品模型的ERD限于影响该问题的实体和属性(即,此处没有库存,因此没有库存)实体存在)。 …

4
SaaS应用程序中的用户会话超时处理-讨论几种方法
我知道这很有可能被标记为重复,但是找不到我要找的东西 这是一个常见问题,我敢肯定它有一些定义明确的最佳实践解决方案 背景 单个页面的SaaS应用程序具有很多拖放功能,用户可以在不进行大量服务器通信的情况下与之交互 服务器会话仅使用非持久会话cookie来保存用户对象 X小时后,会话在服务器上到期 有些东西仅在登录时加载 问题 用户在应用程序上工作,完成后,用户不会注销,只是保持浏览器保持打开状态 用户超过X个小时后返回(会话在服务器上无效) 用户无需服务器连接即可与应用进行交互(拖放内容,文本编辑...) 仅在下一次服务器交互时(假设没有自动保存),用户将被抛出到登录页面,并丢失一些工作 可能的解决方案 这是我想到的一些解决方案,想听听是否还有其他解决方案,以及其中是否有任何根本性的错误。 1.永远不要注销用户 怎么样?保持长时间的会话,保持持久的cookie或javaScript“保持活动” ping 优点:用户无需担心任何事情,可以为他们解决问题 缺点:不符合PCI标准,不安全,并且需要进行开发更改,例如仅在用户登录时加载到会话的内容需要转移到pub子模型(侦听事件更改)或具有缓存超时。 2.本地存储 怎么样?如果注销,使用新的本地存储临时存储状态,重定向到登录页面,登录后永久保存 优点:也是“离线工作”支持的基础,而不仅仅是处理会话超时 缺点:难以实施,需要对数据树进行状态合并,并非所有浏览器都支持 3.自动保存 更改模型的每个用户操作都应立即保留(或通过某种客户端队列),例如,如果他们选中了复选框,更改了文本字段或拖放了某些东西,则一旦完成,就保留更改。 怎么样?使用MV **框架(Backbone.js / Knockout.js / Ember.js / Angular.js等)绑定模型,并坚持更改。 优点:似乎是一个干净的解决方案,只要用户处于活动状态,会话就处于活动状态,如果不坚持下去,则不会进行任何客户端工作。 缺点:会话超时丢失后,用户上一次执行的操作。 4.会话过期后注销用户 这可以有几种方法 询问服务器“会话已过期”-这有点像22 /薛定inger的猫,因为服务器的唯一问题是延长了会话(重新启动超时), 怎么样?要么有一个服务器支持这样的问题(我什么都不知道,但是我来自Java领域),或者可以只保留一张会话ID表,手动上一次访问时间,然后通过传递会话来询问服务器。 ID作为参数而非cookie的参数,我不确定这是否可行,但是听起来很危险,不安全且设计不佳。 优点:如果服务器中有这种本机支持,这听起来像是一个干净,合理的问题(询问用户X是否仍然有会话,如果有则不进行更新) 缺点:如果服务器不支持它(同样,我不知道是否有服务器或框架具有此功能),则解决方法可能会带来巨大的安全风险。 我听说的一种解决方法是在服务器端进行一次简短会话,并在客户端ping保持活动状态ping,最多可以ping 怎么样?服务器上的简短会话,客户端ping每个sessionTimeOut / 2,最大重试次数为Y。 优点:可以解决问题,快速又脏 缺点:感觉像黑客一样,自己处理会话续订而不是让服务器执行 客户端计时器 …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.