Questions tagged «desktop-application»

13
让应聘者写一个链表实现是不好的面试做法吗?[关闭]
通过阅读本网站和SO,我看到了许多关于采访问题和答案的故事,这些故事都说候选人必须从头开始实现链接列表。通常,这是对候选人编程(例如编写FizzBu​​zz)进行的“技巧”练习。这个想法是,如果候选人不能做到这一点,他们就不能编程,应该几乎立即被拒绝。 但是,由于以下原因,我不禁认为这可能是一个不好的做法: 诸如C#和Python之类的现代高级语言在本地广泛使用列表。仅在特殊情况下甚至可能不明智的情况下,才需要编写自己的链表对象。 像C ++这样的低级语言具有带有迭代器/列表容器和对象的标准库。 根据前两点,编码人员可以花很多年甚至不用考虑自己实现列表(链接,双向链接等)。自大学时代以来,有些人甚至可能还没有真正看到过这种东西。 计算能力也不是几年前的因素,因此通过指针进行的效率不是(通常)曾经存在的问题。 一个简单的网络搜索,例如“链表示例”,将带来大量代码示例,这些代码示例只能被记住并吐出来,而不能真正表明申请人的真正能力。 我应该说,使用链表引发对候选人的问题解决能力/批判性思维能力的开放式提问/讨论最有可能是一种非常好的面试习惯。面试官可以通过任何方式真正看到申请人的身分,以及他们认为如何从中受益。 我认为对于在台式机或Web应用程序上工作的程序员来说,这种“无链表代码,无工作”的二进制方法有点过时了。这也可能非常有害;如果一个候选人不记得如何正确地处理列表的开头,那么他本来就是一个出色的编码人员和同事,但却迷失了自己。有什么想法吗? 编辑:有很多(好)评论表明这是一个要问的好还是坏的问题,取决于工作的上下文。我完全同意,所以让我改一下这个问题:对于许多编码工作,实现链接列表是常见的面试问题,类似于FizzBu​​zz之类的问题或编写用于计算阶乘的递归函数的问题。这个问题是否具有足够的实用性,可以普遍用于全面评估编程候选人?还是应该问一个不好的问题,除了“高级开发人员,嵌入式链表团队”职位以外?

5
如何存储开放源代码桌面Twitter客户端的OAuth v1使用者密钥和机密,而不向用户透露?
我想制作一个胖客户端,桌面,开源Twitter客户端。我碰巧正在使用.NET作为我的语言,并使用Twitterizer作为我的OAuth / Twitter包装,并且我的应用程序很可能会以开源形式发布。 要获得OAuth令牌,需要四项信息: 访问令牌(Twitter用户名) 访问机密(Twitter密码) 消费者密钥 消费者的秘密 后两个信息不应该共享,例如PGP私钥。但是,由于OAuth授权流程的设计方式,这些必须位于本机应用程序上。即使该应用程序不是开源的,并且用户密钥/秘密已加密,一个熟练的用户也可以访问用户密钥/秘密对。 所以我的问题是,如何解决这个问题?桌面Twitter客户端保护其用户密钥和机密的正确策略是什么?

1
交付Clojure桌面应用程序是否现实?
我目前正在运送桌面Java应用程序。这是一个普通的旧的Java 5 Java / Swing应用程序,到目前为止,一切正常。定位Java 5是因为某些用户使用的OS X版本/计算机永远都不会安装Java 6(我们可能很快会取消此限制,而改用较新的Java,而只是放弃使用Java 5的用户)。 我很快就开始了解Clojure,但我还没有真正做过很多Clojure-to-Java和Java-to-Clojure,我想知道是否交付Cloclore桌面应用程序而不是Java应用程序是否现实? 我正在运送的应用程序当前带有所有.jar约12 MB,因此添加Clojure似乎没有太大问题。 我的计划是使用Clojure调用Java API:我的应用程序已经划分为几个独立的jar。 如果我了解正确地从Java调用Clojure比从Clojure调用Java代码难,这就是为什么我基本上要重写所有UI(部分UI,混合Swing组件和自制BufferedImages的原因,无论如何都要重写)视网膜显示),并完成Clojure的所有“布线”。 这就是我面临的问题:交付Clojure桌面应用程序是否现实?(它当然似乎并不广泛,但是随后交付普通的Java桌面应用程序也不是那么普遍,而且我还是这样做了) 从技术上讲,需要做什么?(与交付Java应用程序相比)

10
Web开发人员还是软件工程师?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我一直在问自己一个问题,真的很困惑该走哪条路。 因此,就当今这两种职业的利弊,我需要你们的帮助。我喜欢Web应用程序开发,因为Web是这个时代发生的最好的事情,并且几乎每个人都可以在万维网上度过。并且还倾向于不断学习新技术和Web服务。 另一方面,我也喜欢桌面应用程序的软件工程,因为我曾经在VB.Net,Java,C ++等中开发小型软件,因此经验丰富。 哪条道路有更大的范围和更好的未来?您有什么看法?

6
在哪里可以找到良好用户界面的灵感?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 关于为当前正在升级的桌面应用程序设计主屏幕界面,我有一个想法。当我第一次开发该程序时,屏幕分辨率为640 X480。今天有多种屏幕分辨率。 在哪里可以找到有关桌面应用程序主屏幕布局良好的想法?

10
我们可以假定今天所有用户都可以访问互联网吗?
由于Internet几乎无处不在,我们作为开发人员是否可以假设所有用户都可以访问Internet?现在,我并不是说代码的编写方式是:如果没有连接,则由于缺少错误代码,整个程序将崩溃。我的意思是,今天的程序是否可以在假设其用户将始终可以访问Internet的情况下进行开发? 您可能会问:“假设这一点会获得什么?” 我问的原因是因为在uni我们使用了很多程序,这些程序由于检查许可证的方式而需要Internet访问(它检查您的IP地址-如果它不是校园地址,那么您就是不允许使用)。请注意,程序本身在没有Internet访问的情况下应该可以正常运行;仅用于许可证检查。 编辑: 我在这里谈论桌面应用程序。 EDIT2: 从一些答案中,我有一种被指控以不道德的方式利用用户的感觉。我不同意我在这个问题中描述的内容-我只是在问这个问题,因为我们在uni上使用的某些程序的开发人员已经做到了。我个人认为这样做显然是愚蠢和错误的。

7
为什么桌面应用程序不使用HTML,CSS和JavaScript?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 HTML,CSS和JavaScript可用于构建漂亮(且有用)的UI(特别是现在我们有了HTML5和CSS3),并且很多人已经知道它们。尽管这仍然遥不可及,但将整个Web应用程序引入桌面应用程序有多困难?在托管它们之前,我们已经在本地服务器上测试了应用程序。 在我看来,这是一个很好的,简单的想法,它将在桌面应用程序中引起轰动。另外,鉴于这些应用程序已经与Web应用程序共享了如此多的代码,因此它们可能能够提供更好的连接性。 为什么不做呢?

8
自我更新应用程序-哲学
这是一个哲学问题。 给定一个假想的桌面应用程序,并且希望提供自动更新(而不是强迫人们去网站,检查更新,下载更新,安装),这两种方法中的哪一种更“最佳实践”? 与iTunes一样,它会检查是否有新版本,并提示用户下载新版本。如果是这样,它将下载一个完整安装的可执行文件(在这种情况下,为Windows Installer文件(.msi)),该可执行文件将安装完整版本(而不仅仅是升级到以前的版本-如果在那里存在多个版本,将无法管理) 。假设是10.1.1版-无论是全新安装还是升级,都使用相同的文件。下载后,它指示用户关闭应用程序并自己运行安装文件。 与另一个版本类似,它检查新版本并提示用户下载它,但是它不仅为他们下载可执行文件并提示用户运行它,还为他们运行了它-关闭他们打开的程序,获取安装文件所需的安全性。 #2的问题:有关关闭程序的很多问题,因为该程序可以打开其他程序(Outlook和Excel),或者如果用户处于中间位置该怎么办。同样,在安全性方面,您需要本地管理员访问权限才能安装,如果没有安装该怎么办?在更高版本的Windows中,您不能仅覆盖此人的安全性。 #1的问题:有些人认为这对于最终用户而言将太困难,太费力。 我强烈希望使用#1,因为它将节省我的项目80-120小时,并且更易于实现和维护。但是,我们的人在各个方面都有强烈的感觉。 这种事情的最佳实践是什么?

3
如何找到实现特定功能的源代码?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我想知道有什么技术可以在桌面应用程序上找到哪些代码实现了特定功能。 我是一名初级开发人员,仅具有围绕Web编程的专业编程经验。在Web中,这样做更容易。例如,您使用浏览器工具“检查”按钮,然后单击该按钮即可看到正在执行的操作。然后,假设您拥有完整的源代码,则可以深入了解调用的层次结构。 但是如何在桌面应用程序中做到这一点?至少不必深入研究完整的代码库?

5
为什么不将JavaScript用于经典应用程序开发(编译软件)?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 在使用JavaScript进行Web开发的这些年中,我得出的结论是,它是一种不可思议的强大语言,您可以用它来做令人惊奇的事情。 它提供了丰富的功能,例如: 动态打字 一流的功能 嵌套函数 关闭 作为方法起作用 作为对象构造函数 基于原型 基于对象(几乎所有内容都是对象) 正则表达式 数组和对象文字 在我看来,使用这种语言几乎可以完成所有事情,您还可以模拟OO编程,因为它提供了极大的自由度并提供了许多不同的编码样式。 通过更多面向软件的自定义功能(I / O,文件系统,输入设备等),我认为使用它来开发应用程序将非常有用。 尽管据我所知,它仅在Web开发或现有软件中仅用作脚本语言。 直到最近,也许要感谢V8引擎,它已被更多地用于其他类型的任务(例如,请参见node.js)。 为什么到现在为止仅将其降级为仅用于Web开发?是什么使它远离软件开发?

3
我们可以使用Ruby创建桌面应用程序吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 我知道Ruby on Rails框架仅适用于Web开发,不适用于桌面应用程序开发。但是,如果红宝石程序员想要开发桌面应用程序,那么仅使用Ruby(不是jRuby,因为大多数教程都是针对jRuby的),是否合适并且更可取?如果是,请提供一些好的教程。我想使用linux作为开发的操作系统。 请提出一些建议,因为我是红宝石开发人员,想开发桌面应用程序。

7
确定何时使用数据库的最佳方法是什么?
我开始使用PHP和MySQL进行网络开发的编程生涯。我已经习惯了使用db来存储大多数动态数据以及一些设置/参数数据。有时会有很多数据,而其他时候表中的条目会很少。在我看来,这似乎很自然,据我所知,这或多或少是Web开发中可接受的方法。(如果我错了,请纠正我...) 我现在正在研究桌面应用程序,我的自然倾向是再次利用数据库来存储大量信息,这些信息将通过使用该应用程序而生成。 但是,据我所知,我看不到应用程序(我使用的)经常使用db。 [编辑:自那以来,有人指出这是一个错误的假设,因为许多应用程序确实使用嵌入程序本身的轻量级数据库。] 这是什么原因?在什么时候使用数据库是合适的?关于这件事有什么标准吗?还有什么原因不使用数据库来开发桌面应用程序呢?

2
当用户编辑行时,是否应该将行锁定在云数据库中?
我正在创建一个桌面应用程序,将数据持久存储在云中。我关心的一个问题是开始在应用程序中编辑项目,并将其保留一段时间会导致数据过时。如果两个人同时尝试编辑同一项目,则显然也会发生这种情况。当他们完成编辑并要保存数据时,我要么需要覆盖数据库中当前存在的内容,要么检查他们在上一次更改之后是否开始编辑,或者迫使他们放弃更改,或者给他们选择冒险的选择覆盖他人的更改。 我想增加一个字段is_locked和lock_timestampdb表。当用户开始编辑项目时,该行将is_locked变为true并将锁定时间戳记设置为当前时间。然后,我将拥有一段时间的锁定时间(例如5分钟)。如果其他任何人尝试编辑该项目,他们将收到一条消息,指出该项目已被锁定,并且锁定自动失效。如果用户在编辑时走开,则锁会在相对较短的时间后自动过期,一旦这样做,将警告用户锁已过期,并在刷新数据后被迫重新开始编辑。 这是防止覆盖陈旧数据的好方法吗?是不是太过分了(我不希望单个帐户同时使用多个应用程序)。 (我还要担心的是,有2个人为同一物品锁上了锁,但是我认为这是我可以接受的比赛条件。)

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应用程序开发还有哪些其他困难?
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.